Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   [решено] bat-файл на русском (http://forum.oszone.net/showthread.php?t=120311)

snake-as 17-10-2008 11:12 926216

bat-файл на русском
 
Здравствуйте. Может эта тема здесь не раз поднималась. Я просто не нашел. Я пишу bat-файл. И некоторые слова на русском. Когда запускаю - появляются абра-кадабры. Скажите, как этого избежать?

dimich22 17-10-2008 11:17 926227

кодировка DOS-866

snake-as 17-10-2008 15:15 926429

А как мне выставлять кодировку, если я пишу в обычном блокноте, либо добавляю через VBA?

madmax24 17-10-2008 16:09 926477

А ты пиши через far или в тотал командере укажи.

ShaddyR 17-10-2008 17:12 926546

Цитата:

Цитата snake-as
как мне выставлять кодировку, если я пишу в обычном блокноте »

команда DOS
chcp 866

snake-as 18-10-2008 07:54 927031

ShaddyR, когда я пишу батник, то все равно кракозябры вылазят. Вот мой код, он элементарный, но показательный:

chcp 866
renuser Администратор Administrator
pause

amel27 18-10-2008 11:54 927152

snake-as, для "показательного кода" используй штатные или хотя бы доступные утилиты

ShaddyR 18-10-2008 15:16 927294

amel27, я проверил - элементарное
Код:

echo текст
pause

набранное в блокноте, вместо "тест" выдаст кракозябры. При этом "нажмите любую клавишу" напишет верно и смена кодовой страницы будет влиять как раз на последнее.

snake-as, madmax24 прав - блокнот не умеет сохранять в нужной тебе кодировке. Используй третьесторонние редакторы, которые уже были озвучены выше либо любые другие, умеющие сохранять текст в кодировке OEM (866)

snake-as 18-10-2008 15:21 927297

Всем спасибо за помощь. Думаю, можно закрывать тему. Хотелось автоматически сделать. Нельзя, так нельзя..

amel27 18-10-2008 16:25 927356

ShaddyR
Цитата:

набранное в блокноте, вместо "тест" выдаст кракозябры »
CHCP перекодирует переменные - так можно обрабатывать исходный текст в WIN-кодировке ценой усложнения скрипта... При желании такой подход можно унифицировать выносом текстовых данных в отдельный файл.
Код:

CHCP 1251
Set TEXT=текст

CHCP 866
Echo %TEXT%

PAUSE

Цитата:

проверил - элементарное »
некоторые утилиты конвертируют StdIn and/or StdOut в зависимости от состояния CHCP

snake-as
из штатных в DOS-кодировке может сохранять WordPad

Котяра 18-10-2008 19:30 927494

Нужно вводить BAT-файл в программе WordPad. Там есть выбор кодировки. Вариант с командой chcp 1252 тоже подойдет.

ShaddyR 18-10-2008 19:51 927513

Цитата:

Цитата Котяра
или команда chcp 1251. »

ты перечитываешь предыдущие сообщения?

Цитата:

Цитата snake-as
Нельзя, так нельзя »

отчего ж нельзя-то? Можно, варианты предложены выше.

snake-as 21-10-2008 08:55 929206

Всем спасибо! Справился:)

ZanyGamer 15-01-2010 00:05 1320548

А как открыть файл, который назван по русски История версий.txt
Если в батнике пишу История_версий.txt - запускается История_версий.txt, а вот если просто пробел - не воспринимает дальше слова История и пишет файл 'История' не найден!
Может знает как можно пробел поставить, чтобы батник его воспринял?

ShaddyR 15-01-2010 02:14 1320632

Цитата:

Цитата ZanyGamer
История версий.txt »

->>
"История версий.txt"

ZanyGamer 15-01-2010 11:33 1320848

ShaddyR,

Код:

start "История версий.txt"
не работает =\

Всё нашёл ответ!

Код:

start "" "История версий.txt"

ShaddyR 17-01-2010 03:52 1322298

ZanyGamer, а зачем start-то? Или имя программы может быть неизвестно, а открытие в другой не входит в условие?
notepad "история версий.txt"

ЗЫ: кста, тебе отдельное спасибо за отписку о решении. Долгое время сам пытался понять, отчего вариант, подобный
start "C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 7.0\avp.exe"
заканчивается командной строкой и как это побороть. Оказывается - вона как :)


Время: 01:29.

Время: 01:29.
© OSzone.net 2001-