Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: Valdon
Дата сообщения: 15.01.2008 15:29
Возможно ли в консоли сделать вывод в ANSI-1251 кодировке (избавиться от крякозяблов кирилицы если батничек в ANSI-1251 без конвертации батника в DOS-866) ? Если возможно, то поделитесь плиз, примером.....
Автор: 01MDM
Дата сообщения: 15.01.2008 16:04
Valdon
Смотря что вывести. Результат батника или результат вывода какого-нибудь приложения, которое вызывалось батником? Чаще достаточно в начале батника поставить chcp 1251 1>nul
Автор: Valdon
Дата сообщения: 15.01.2008 16:09
01MDM, Команду Echo Руcский текст (Ansi-1251) на консоль.
З.Ы. Пытался из батничка вызавть cmd.exe /a и продолжить выполнение сценария но эффекта ноль , вообще я так и непонял смысла параметра /a ....
Автор: 01MDM
Дата сообщения: 15.01.2008 16:25
Valdon
Батник изначально в cp1251

Код:
@echo off
chcp 1251 >nul
echo Некоторый текст
chcp 866 >nul
:: Последняя строка по-желанию (если надо что-бы вернулась dos-кодировка в консоль)
Автор: Valdon
Дата сообщения: 15.01.2008 16:32
01MDM, я так и делал,у меня в консоли всеравно крякозяблы....... Где я туплю ? Если перенаправить вывод в файл то кодировка естестно ANSI-1251
Автор: 01MDM
Дата сообщения: 15.01.2008 16:43
Valdon
Что за виндоус?
Команда help в консоли выводится на русском? Если да, то скорее всего это не ANSI-1251.

Еще может быть засада если ты cmd запускаешь из какого-нибудь мудреного батника.

Автор: Valdon
Дата сообщения: 15.01.2008 16:50
01MDM,
Код:
@echo off
if "%per%" == "" (
set per=yes
cmd.exe /a /c %0
exit /b
)
chcp 1251 >nul
Echo Русский текст в кодировке ANSI-1251 - Наблюдаем крякозябы в консоли
Echo Возможно ли от них избавиться?
Pause
Exit
Автор: 01MDM
Дата сообщения: 15.01.2008 17:02
Valdon
Не знаю, у меня все выводится нормально. Здесь проблема не с выводом, а с настройками.
Посмотри в "языках и рег. стандартах" что бы стояла поддержка рус. языка для не юникодных программ, может и в реесте какие-нибудь настройки, типа 1252 > 1251
Автор: Valdon
Дата сообщения: 15.01.2008 17:08
01MDM, мож этот твик влияет ?:
Код:
; Избавляемся от кракозябликов в некотрых не-юникоде программах
; Так же избавляет от необходимости переключения на русский язык в обоих программах
; При копировании между ними русского текста через буфер обмена
; Иногда могут быть проблемы!!!! (Но, редко. Пользы больше чем вреда)
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1250",0x00000000,"c_1251.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1251",0x00000000,"c_1251.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1252",0x00000000,"c_1251.nls"
HKLM,"SYSTEM\CurrentControlSet\Control\Nls\CodePage","1253",0x00000000,"c_1251.nls"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontMapper","ARIAL",0x00010001,204
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Arial,0",0x00000000,"Arial,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Comic Sans MS,0",0x00000000,"Comic Sans MS,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Courier,0",0x00000000,"Courier New,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Courier,204",0x00000000,"Courier New,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","MS Sans Serif,0",0x00000000,"MS Sans Serif,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Tahoma,0",0x00000000,"Tahoma,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Times New Roman,0",0x00000000,"Times New Roman,204"
HKLM,"SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","Verdana,0",0x00000000,"Verdana,204"
Автор: 01MDM
Дата сообщения: 15.01.2008 17:20
Valdon
Если честно, то не знаю. Может еще шрифт в консоли изменить? В файл ведь выводит нормально. Вообще кириллица присутствует если выводишь справку(help, /?)?

ЗЫ. По всей видимости какой-то а-ля Fuck Bill?
Автор: Valdon
Дата сообщения: 15.01.2008 17:38
01MDM, help - крякозяблы(DOS866), ANSI - тоже крякозяблы.....


Цитата:
ЗЫ. По всей видимости какой-то а-ля Fuck Bill?
Не, дистр сам собирал на основе ru_winxp_pro_with_sp2_vl.iso и UpdatePack-а от Petya V4sechkin но это уже оффтоп.....

01MDM, благодарю за помощь, буду с твиками реестра разбираться
Автор: Mpa3b
Дата сообщения: 15.01.2008 18:24

Цитата:
01MDM
А зачем вообще создавать виртуальный диск?

странно, как зачем?
так как с жесткого содержимое диска CD не работает.
Вирутальный создается и ручками запускать ,-так же все идет.
Батфайл не умеет(мой) повторить то, что делаю ручками, от сюда
и вопрос, как батфайл написать. Другого способа не увидел, вот и завиртуалил.))
по поводу

Код:
subst z: /d
subst z: How_make_dv
pushd z:\bin
start "" VIDEO.exe
popd
Автор: 01MDM
Дата сообщения: 15.01.2008 18:51
Mpa3b


Цитата:
раскажи немного. чего это и чем отличается от моего.


ну pushd это вроде cd только еще запоминает предыдущий каталог, в который возвращаешься командой popd. Эта команда многоуровневая, но каждому pushd соответствует только свой popd. Удобно в случае если батник находится за пределами области из которой должна быть выполнена команда. Главное отличие от cd в том что ты не перемещаешься в каталог, а назначаешь его текущим. Поскольку Video.exe корректно работает только в случае если ты находишься там же, то pushd как раз подходит для этого.
И в соответсвии с правилами запуска приложений применяется команда start.

pushd /?
start /?

Кроме того не правильно использовать "/" вместо "\", это не никсовая консоль и если ввести, допустим, cd C:/windows/system32, то будет выведена ошибка.
Автор: Mpa3b
Дата сообщения: 15.01.2008 19:17
01MDM
спасибо, про старт я помню, даже и его приписывал, а про pushd
так и не понял, мне команды стека напоминают и далее принцип не понятен.

Цитата:

Когда расширенная обработка команд включена, команда PUSHD допускает ввод
сетевых путей в дополнение к обычным именам дисков и путям.
Если указан сетевой путь, команда PUSHD создает временное имя диска,
указывающее на заданный сетевой ресурс, а затем производит смену текущего
диска и каталога, используя вновь определенное имя диска.
Выделение временных имен дисков проводится в обратном порядке начиная
с Z:, причем выбирается первое свободное имя диска.

смутно, смутно
Автор: uZver
Дата сообщения: 15.01.2008 21:44
koderr
если использование стандартного телнета не ключевое условие, то можно использовать этот
клиент
Автор: DenSer
Дата сообщения: 16.01.2008 11:16
господа, подскажите плиз, возможно ли при помощи bat-файла убрать language bar (языковую панель) с панели задачь?
заранее спасибо!

Добавлено:
забыл сказать!
интересует данная функция в XP
Автор: cluster
Дата сообщения: 16.01.2008 16:38
DenSer

Код: regsvr32.exe /s /u msutb.dll
taskkill /f /im explorer.exe
explorer.exe
Автор: DenSer
Дата сообщения: 16.01.2008 17:19
cluster
спасибо! но я так понял это вариант с перезапуском эксплорера? имхо не самый удачный вариант.

есть ещё какие-либо варианты?
Автор: cluster
Дата сообщения: 16.01.2008 19:29
DenSer

Цитата:
но я так понял это вариант с перезапуском эксплорера?

да. не вижу ничего страшного. это для того, чтобы обновить изменения.


Цитата:
есть ещё какие-либо варианты?

перезагрузка ЭВМ

После команды "regsvr32.exe /s /u msutb.dll" языковая панель не появится, пока не выполнишь "regsvr32.exe /s msutb.dll"
Автор: Smitis
Дата сообщения: 16.01.2008 20:20
DenSer

Цитата:
спасибо! но я так понял это вариант с перезапуском эксплорера? имхо не самый удачный вариант.

есть ещё какие-либо варианты?

Перезагрузить винду или перелогиниться
Автор: SymA
Дата сообщения: 17.01.2008 07:10
to king_stiven в свойствах папки стоит галка "Открывать папки в одном и том же окне" ; чтобы долго не лезть в дебри дерева, а сразу попасть в "9"
to 01MDM THK !

как организовать отключение сетевых подключений (диалап; впн; локальная сеть) ?
Автор: REugen
Дата сообщения: 17.01.2008 07:50
Всем привет.
В ват выполняется программа с переназначением (>) результатов в файл LOG.
в зависимости от условий размер файла LOG - либо 0, либо > 0.
Как проанализировать этот размер, что бы запустить процедуру по этому
условию?
Спасибо.
Автор: Smitis
Дата сообщения: 17.01.2008 08:32
REugen

Цитата:
Как проанализировать этот размер, что бы запустить процедуру по этому
условию?


Код:
for %%f in (log.log) do set sz=%%~zf
if %sz% gtr 0 echo %sz%
Автор: king_stiven
Дата сообщения: 17.01.2008 08:52
SymA

возможно taskkill? т е taskkill ом убери ненужное тебе окно, вот и останется только нужное одно окно
Автор: REugen
Дата сообщения: 17.01.2008 08:52
Smitis
Спасибо.
Автор: 01MDM
Дата сообщения: 17.01.2008 09:02
SymA

Цитата:
как организовать отключение сетевых подключений (диалап; впн; локальная сеть) ?


rasdial /?
cnic /?

Автор: Smitis
Дата сообщения: 17.01.2008 09:04
REugen
Ещё. Если log файл может отсутствовать, условие проверки лучше записать так

Код:
if defined %sz% if %sz% gtr 0 echo %sz%
Автор: REugen
Дата сообщения: 17.01.2008 09:39
Спасибо.
Автор: Valdon
Дата сообщения: 17.01.2008 16:55
01MDM, по поводу кодировки ANSI в батнике и крякозяблов в консоли...
Если поставить в свойствах консоли шрифт Lucida Console то при chcp 1251 крякозяблы исчезают как в батнике с ANSI кодировкой так и по команде HELP. По умолчанию винды ставят на консоль точечные шрифты(Terminal) поэтому крякозяблы будут ВСЕГДА пока непоменяем шрифт консоли! Я прав? Если незатруднит, проверьте плиз...

Автор: 01MDM
Дата сообщения: 17.01.2008 18:01
Valdon
Нужно было сразу проверить. Я давал такой совет на стр. 70

Цитата:
Отправлено: 18:20 15-01-2008

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

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.