CMD/BAT - [решено] Возврат исходной кодовой страницы

Ответить
Аватара пользователя
Гризлик

CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Гризлик »

Здраствуйте!

Как можно узнать и запомнить текущую кодовую страницу системы и после выполнения произвольных команд, в конце батника её вернуть.

Строуктура батника:



Код:

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

***Выяснение текущей кодовой страницы и её запоминание*****
***смена кодовой страницы****
***выполнение основного тела батника***
***Возврат изначальной кодовой страницы***

Интересует первый и последний пункт. Текущая кодовая страница неизвестна.

Спасибо!
Аватара пользователя
Гризлик

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Гризлик »

Извините может не правильно изначально назвал.

К примеру: текущая кодировка системы - windows 1251 На время выполнения батника её нужно сменить на OEM 866. А потом вернуть обратно. Но текущая кодировка изначально не известна.
Аватара пользователя
ShaddyR

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение ShaddyR »

Гризлик, а на кой возвращать обратно кодировку, если изменения действуют только в пределах текущего cmd-сеанса?
Аватара пользователя
Гризлик

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Гризлик »

Цитата ShaddyR:



а на кой возвращать обратно кодировку, если изменения действуют только в пределах текущего cmd-сеанса?
CMD/BAT - [решено] Возврат исходной кодовой страницы




Т.е. в этом случае это бессмысленно? Я думал это все сохраняется.Изображение

Ну а так чисто технически как можно это сделать средствами батника? В дальнейшем мне может вполне это пригодится.

Точнее я догадываюсь до принципа работы - результат вывода какой-либо команды записать в переменую , и затем эту комнду с аргументами от этой переменной выполнить.

Но я совершено не разбираюсь с работой переменых в bat файле.



Поэтому можете показать как это сделать в bat файле?? Пожалуйста! Пусть идея с кодировками и лишина практического смысла, но меня интересует тех. сторона вопроса.

Спасибо!
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Iska »

Гризлик, вообще на локализованной русской версии умолчальной кодовой страницей для консоли и так является OEM/866. Если вдруг у Вас оказывается, что умолчальной кодовой страницей для консоли является ANSI/1251:


Цитата Гризлик:



К примеру: текущая кодировка системы - windows 1251
CMD/BAT - [решено] Возврат исходной кодовой страницы




— значит, в системе порезвились чьи-то шаловливые ручки.



А так:



Код:

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

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=2 delims=:" %%i in (`chcp`) do set sOldCP=%%~i
>nul chcp 866
echo bla-bla-bla
echo bla-bla-bla
echo bla-bla-bla
if defined sOldCP >nul chcp %sOldCP%
endlocal
exit /b 0
Аватара пользователя
Гризлик

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Гризлик »

Iska, Спасибо большое!!!!

А можно хотябы вкратце получить комментарии по двум строчкам. Что они делают

Код:

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

setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=2 delims=:" %%i in (`chcp`) do set sOldCP=%%~i
>nul chcp 866
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Возврат исходной кодовой страницы

Сообщение Iska »

Цитата Гризлик:



Что они делают
CMD/BAT - [решено] Возврат исходной кодовой страницы




Именно вот это:


Цитата Гризлик:



я догадываюсь до принципа работы - результат вывода какой-либо команды записать в переменую , и затем эту комнду с аргументами от этой переменной выполнить
CMD/BAT - [решено] Возврат исходной кодовой страницы
Ответить

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