|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Запись в лог русскими буквами. |
|
|
CMD/BAT - Запись в лог русскими буквами.
|
Старожил Сообщения: 290 |
Профиль | Отправить PM | Цитировать Нужно вести лог, который находится в папке "C:\Soft\Other\Scripts\Logs\" примерно такого вида:
======= 14.09.2014 17:01 Началось обновление комплекта №1 14.09.2014 17:12 Завершилось обновление комплекта №1 ======= И как писать Кириллицу в логи я тоже не знаю. |
|
Отправлено: 10:38, 14-09-2014 |
Ветеран Сообщения: 874
|
Профиль | Отправить 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 290
|
Профиль | Отправить PM | Цитировать Georgio, а можешь приписать, чтобы в папку нужную писал?
|
Отправлено: 12:04, 14-09-2014 | #3 |
Ветеран Сообщения: 874
|
Профиль | Отправить 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
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 14:25, 14-09-2014 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить 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 . Результат: . И теперь смотрите: @echo off >"example.log" ( echo %date% %time:~0,5% Мама мыла раму. timeout /t 60 /nobreak>nul echo %date% %time:~0,5% Мама мыла раму. ) exit /b . Результат: . То есть по-хорошему надо было использовать и "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 |
Старожил Сообщения: 290
|
Профиль | Отправить PM | Цитировать Georgio, я как-то не вижу разницы...
|
Отправлено: 15:59, 14-09-2014 | #7 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать i-Lex, просто в одном случае везде будет фигурировать только одно и то же время -- время запуска программы, а в других случаях время будет меняться, как это и положено.
|
Отправлено: 16:13, 14-09-2014 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Georgio, так это тот же самый типичный случай — надо пользовать либо отложенное раскрытие переменных окружения и «!» вместо «%», либо двойной раскрытие переменных окружения через «call echo %%date%% %%time%% …». Второй вариант Вы озвучили.
Другой Ваш вариант выглядит чересчур надуманным. Отчего Вы так не любите простое «setlocal enableextensions enabledelayedexpansion»? |
Отправлено: 17:32, 14-09-2014 | #9 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Iska:
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 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Странная проблема с русскими буквами в 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 |
|