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

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

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

Новый участник


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

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


Здраствуйте!
Как можно узнать и запомнить текущую кодовую страницу системы и после выполнения произвольных команд, в конце батника её вернуть.
Строуктура батника:
Код: Выделить весь код
***Выяснение текущей кодовой страницы и её запоминание*****
***смена кодовой страницы****
***выполнение основного тела батника***
***Возврат изначальной кодовой страницы***
Интересует первый и последний пункт. Текущая кодовая страница неизвестна.
Спасибо!

Отправлено: 00:15, 03-05-2018

 

Ветеран


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

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


Цитата Гризлик:
текущую кодовую страницу системы »
что это такое?

Отправлено: 00:52, 03-05-2018 | #2



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

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


Новый участник


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

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


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

Последний раз редактировалось Гризлик, 03-05-2018 в 01:06.


Отправлено: 00:57, 03-05-2018 | #3


Аватара для ShaddyR

Железных Дел Мастер


Moderator


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

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


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

-------
[FAQ] Как определить аппаратную конфигурацию компьютера и правильно задать вопрос
-------
В благодарность за помощь нажимаем ссылочку "Полезное сообщение" внизу этого самого сообщения (подробнее). Помните: админ конфеты НЕ ПЬЁТ ;)
-------
Говори, что думаешь и думай, что говоришь! (c) || МОЙ ShaddyR.at.UA/blog - Новая метла и инвентаризация)


Отправлено: 01:32, 03-05-2018 | #4


Новый участник


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

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


Цитата ShaddyR:
а на кой возвращать обратно кодировку, если изменения действуют только в пределах текущего cmd-сеанса? »
Т.е. в этом случае это бессмысленно? Я думал это все сохраняется.
Ну а так чисто технически как можно это сделать средствами батника? В дальнейшем мне может вполне это пригодится.
Точнее я догадываюсь до принципа работы - результат вывода какой-либо команды записать в переменую , и затем эту комнду с аргументами от этой переменной выполнить.
Но я совершено не разбираюсь с работой переменых в bat файле.

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

Отправлено: 02:01, 03-05-2018 | #5


Ветеран


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

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


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

А так:
Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:19, 03-05-2018 | #6


Новый участник


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

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


Iska, Спасибо большое!!!!
А можно хотябы вкратце получить комментарии по двум строчкам. Что они делают
Код: Выделить весь код
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims=:" %%i in (`chcp`) do set sOldCP=%%~i
>nul chcp 866

Отправлено: 02:39, 03-05-2018 | #7


Ветеран


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

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


Цитата Гризлик:
Что они делают »
Именно вот это:
Цитата Гризлик:
я догадываюсь до принципа работы - результат вывода какой-либо команды записать в переменую , и затем эту комнду с аргументами от этой переменной выполнить »
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:05, 03-05-2018 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Конвертирование из mkv в mp4 с сохранением исходной видеодорожки Терпила Хочу все знать 9 02-09-2015 08:25
FreeBSD - При копировании размеры исходной и целевой папок сильно различаются VictorSh Общий по FreeBSD 9 31-07-2011 20:09
Интерфейс - Изменение кодовой страницы масяня@ Microsoft Windows Vista 2 25-08-2009 18:25
[решено] Необходима программа для восстановления исходной информации Smasher_go Программное обеспечение Windows 3 26-10-2007 20:07
Замена кодовой страницы Guest Microsoft Windows 95/98/Me (архив) 3 24-03-2002 11:51




 
Переход