Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запись в лог русскими буквами.

Ответить
Настройки темы
CMD/BAT - Запись в лог русскими буквами.

Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3


Конфигурация

Профиль | Отправить PM | Цитировать


Нужно вести лог, который находится в папке "C:\Soft\Other\Scripts\Logs\" примерно такого вида:

Код: Выделить весь код
=======
14.09.2014  17:01 Началось обновление комплекта №1
14.09.2014  17:12 Завершилось обновление комплекта №1
=======
С написанием скриптов у меня очень плохо.
И как писать Кириллицу в логи я тоже не знаю.

Отправлено: 10:38, 14-09-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Как-то так:


Код: Выделить весь код
@echo off

>"example.log" (
echo =======
set /p="%date%  "<nul& @for /f %%i in ('time /t') do @echo %%i Началось обновление комплекта №1
start "" /wait "example.exe"
set /p="%date%  "<nul& @for /f %%i in ('time /t') do @echo %%i Завершилось обновление комплекта №1
echo =======
)

exit /b

.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:44, 14-09-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3

Профиль | Отправить PM | Цитировать


Georgio, а можешь приписать, чтобы в папку нужную писал?

Отправлено: 12:04, 14-09-2014 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off

:: Полный путь к LOG-файлу:
>"C:\Soft\Other\Scripts\Logs\example.log" (
echo =======
set /p="%date%  "<nul& @for /f %%i in ('time /t') do @echo %%i Началось обновление комплекта №1

:: Пример запуска программы:
start "" /wait "D:\Test\example.exe"

set /p="%date%  "<nul& @for /f %%i in ('time /t') do @echo %%i Завершилось обновление комплекта №1
echo =======
)

exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:21, 14-09-2014 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Georgio, почему не просто:
Код: Выделить весь код
echo %date% %time:~0,5% Мама мыла раму
?

Отправлено: 14:25, 14-09-2014 | #5


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Iska, смотрите:


Код: Выделить весь код
@echo off

>"example.log" (
set /p="%date%  "<nul& for /f %%i in ('time /t') do echo %%i  Мама мыла раму.
timeout /t 60 /nobreak>nul
set /p="%date%  "<nul& for /f %%i in ('time /t') do echo %%i  Мама мыла раму.
)

exit /b

.



Результат:


Код: Выделить весь код
14.09.2014  15:07  Мама мыла раму.
14.09.2014  15:08  Мама мыла раму.

.



И теперь смотрите:


Код: Выделить весь код
@echo off

>"example.log" (
echo %date%  %time:~0,5%  Мама мыла раму.
timeout /t 60 /nobreak>nul
echo %date%  %time:~0,5%  Мама мыла раму.
)

exit /b

.



Результат:


Код: Выделить весь код
14.09.2014  15:10  Мама мыла раму.
14.09.2014  15:10  Мама мыла раму.

.



То есть по-хорошему надо было использовать и "date /t".



Также могу предложить такие варианты:


Код: Выделить весь код
@echo off

>"example.log" (
cmd /v:on /c echo !date!  !time:~0,5!  Мама мыла раму.
timeout /t 60 /nobreak>nul
cmd /v:on /c echo !date!  !time:~0,5!  Мама мыла раму.
)

exit /b

и


Код: Выделить весь код
@echo off

>"example.log" (
call echo %%date%%  %%time:~0,5%%  Мама мыла раму.
timeout /t 60 /nobreak>nul
call echo %%date%%  %%time:~0,5%%  Мама мыла раму.
)

exit /b

.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:53, 14-09-2014 | #6


Аватара для i-Lex

Старожил


Сообщения: 290
Благодарности: 3

Профиль | Отправить PM | Цитировать


Georgio, я как-то не вижу разницы...

Отправлено: 15:59, 14-09-2014 | #7


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


i-Lex, просто в одном случае везде будет фигурировать только одно и то же время -- время запуска программы, а в других случаях время будет меняться, как это и положено.

Отправлено: 16:13, 14-09-2014 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Georgio, так это тот же самый типичный случай — надо пользовать либо отложенное раскрытие переменных окружения и «!» вместо «%», либо двойной раскрытие переменных окружения через «call echo %%date%% %%time%% …». Второй вариант Вы озвучили.

Другой Ваш вариант выглядит чересчур надуманным. Отчего Вы так не любите простое «setlocal enableextensions enabledelayedexpansion»?

Отправлено: 17:32, 14-09-2014 | #9


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Iska:
Другой Ваш вариант выглядит чересчур надуманным. Отчего Вы так не любите простое «setlocal enableextensions enabledelayedexpansion»? »


Iska, просто сравните:


Код: Выделить весь код
:: !!!Мама мыла раму!!!

@echo off
chcp 1251>nul

setlocal enabledelayedexpansion

for /f "usebackq delims=" %%i in ("%~f0") do chcp 866>nul& echo %%i& endlocal& pause>nul& exit /b

и


Код: Выделить весь код
:: !!!Мама мыла раму!!!

@echo off
chcp 1251>nul

:setlocal enabledelayedexpansion

for /f "usebackq delims=" %%i in ("%~f0") do chcp 866>nul& cmd /v:on /c echo %%i& pause>nul& exit /b

.

Отправлено: 18:11, 14-09-2014 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запись в лог русскими буквами.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Странная проблема с русскими буквами в windows 2003. mitiya AutoIt 2 30-11-2011 00:10
Глюки с русскими буквами из инета AlexM AutoIt 4 27-02-2011 14:28
ActivestatePerl&mysql - проблема с русскими буквами ave Программирование и базы данных 1 19-01-2007 13:14
Помогите с русскими буквами в Akrobat'е Yewgeniy Хочу все знать 2 18-11-2006 19:11
XMMS с русскими буквами Spijon Программное обеспечение Linux и FreeBSD 15 23-04-2004 01:42




 
Переход