CMD/BAT - Запись в лог русскими буквами.

Аватара пользователя
Georgio

Re: CMD/BAT - Запись в лог русскими буквами.

Сообщение Georgio »

Сравнил:



Код:

Код: Выделить всё

E:\Песочница\0398>0001.cmd
::
E:\Песочница\0398>0002.cmd
::

Разницы не увидел Изображение. Поясню: у меня отложенное раскрытие задано по умолчанию на уровне реестра, посему пришлось во втором случае исправить на «setlocal disabledelayedexpansion» дабы увидеть. Увидел:



Код:

Код: Выделить всё

:: !!!Њ*¬* ¬л«* а*¬г!!!

но так и не понял Вашу мысль.
Аватара пользователя
Georgio

Re: CMD/BAT - Запись в лог русскими буквами.

Сообщение Georgio »

Цитата Iska:



но так и не понял Вашу мысль.
CMD/BAT - Запись в лог русскими буквами.










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

.
Аватара пользователя
i-Lex

Re: CMD/BAT - Запись в лог русскими буквами.

Сообщение i-Lex »

Эм...

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

Re: CMD/BAT - Запись в лог русскими буквами.

Сообщение Georgio »

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  "



.
Аватара пользователя
Iska

Re: CMD/BAT - Запись в лог русскими буквами.

Сообщение Iska »

Цитата:



Также могу предложить такие варианты:
CMD/BAT - Запись в лог русскими буквами.






Код:

Код: Выделить всё

@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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»