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

Компьютерный форум 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

 

Ветеран


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

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


Сравнил:
Код: Выделить весь код
E:\Песочница\0398>0001.cmd
::

E:\Песочница\0398>0002.cmd
::
Разницы не увидел . Поясню: у меня отложенное раскрытие задано по умолчанию на уровне реестра, посему пришлось во втором случае исправить на «setlocal disabledelayedexpansion» дабы увидеть. Увидел:
Код: Выделить весь код
:: !!!Њ*¬* ¬л«* а*¬г!!!
но так и не понял Вашу мысль.

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



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

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


Ветеран


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

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


Цитата Iska:
но так и не понял Вашу мысль. »



Iska,
Код: Выделить весь код
cmd /v:on /c
я использую, причём успешно, для сложного парсинга текста. И дело тут не только в восклицательных знаках, хотя это тоже немаловажно. Например, из нижеприведённых кодов пакетных файлов с поставленной задачей справится только код третьего пакетного файла, где используется как раз
Код: Выделить весь код
cmd /v:on /c
.



Примеры:


1)
Код: Выделить весь код
::  &  Мама мыла раму.

@echo off
chcp 1251>nul

setlocal enabledelayedexpansion

for /f "usebackq delims=" %%i in ("%~f0") do (
 set string=%%i| 
 chcp 866>nul
 echo !string: =$!| findstr "^:"
 chcp 1251>nul
)

endlocal
pause>nul
exit /b
;


2)
Код: Выделить весь код
::  &  Мама мыла раму.

@echo off
chcp 1251>nul

setlocal disabledelayedexpansion

for /f "usebackq delims=" %%i in ("%~f0") do (
 set string=%%i
 chcp 866>nul
 call echo %%string: =$%%| findstr "^:"
 chcp 1251>nul
)

endlocal
pause>nul
exit /b
;


3)
Код: Выделить весь код
::  &  Мама мыла раму.

@echo off
chcp 1251>nul

setlocal disabledelayedexpansion

for /f "usebackq delims=" %%i in ("%~f0") do (
 set string=%%i
 chcp 866>nul
 cmd /v:on /c echo !string: =$!| findstr "^:"
 chcp 1251>nul
)

endlocal
pause>nul
exit /b
.

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


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

Старожил


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

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


Эм...
Какой из этих скриптов будет писать кириллицу и меньше будет проблем на Win 2003 ?

Отправлено: 07:40, 15-09-2014 | #13


Ветеран


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

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


i-Lex, для Вашей задачи попробуйте так:


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

:: Полный путь к LOG-файлу:
"C:\Soft\Other\Scripts\Logs\example.log"> (

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

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

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

exit /b

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

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


Ветеран


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

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


Georgio, по посту #12 — так и не понял, в чём его преимущества по сравнению с кодом из #5.

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


Старожил


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

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


Цитата:
Также могу предложить такие варианты: »
Код: Выделить весь код
@echo off

:: Полный путь к LOG-файлу:
>>"Z:\Soft\Other\Scripts\Logs\example.log" (

echo =======
call :time Началось обновление комплекта №1

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

call :time Завершилось обновление комплекта №1
echo =======
)

exit /b

:time
echo %date%	%time:~0,5%	%*
goto :eof

Отправлено: 21:19, 15-09-2014 | #16



Компьютерный форум 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




 
Переход