Имя: Пароль:
IT
Админ
*.bat не воспринимает русский язык
0 uldreams
 
26.02.09
08:26
Здравствуйте!
я только начала знакомится с созданием файлов *.bat, поэтому отнеситесь с терпением, возможно мой вопрос будет глупым...
Так вот в чем проблема:
Создала я файл с расширением bat, пишу там путь к исполняемому файлу, и там встречаются русские слова, и при исполнении эти русские слова воспринимаются как каля-баля всякие.
Если путь полностью на английском - тогда все запускается нормально.
Что сделать чтобы путь с русскими буквами воспринимался правильно?
1 Kavar
 
26.02.09
08:28
Писать в DOS кодировке.
2 Сергей-ХХХ
 
26.02.09
08:29
(1) Точно!
Как? Можно copy con 1.bat. Закончить ввод клавишами ctrl+Z.
3 Мулька
 
26.02.09
08:30
(0) Под чем пишешь? Проводник, Тотал, Фар?
4 uldreams
 
26.02.09
08:32
3) хммм
создаю текстовый документ, и меняю расширение просто
5 Медвед1Сник
 
26.02.09
08:33
А вот у меня вопрос такоф. Можно ли поменять кодировку для досовских окон под виндой? Т.е. чтобы не только досовская кодировка выводилась но и виндозная в командной строке.
6 uldreams
 
26.02.09
08:34
1 и 2 - можно учесть что я с трудом вас понимаю? может более подробно напишете?:-)
7 ShoGUN
 
26.02.09
08:37
(6) Почитай в яндексе, что такое "кодировка". И смени блокнот на другой редактор. Альтернатива, кстати - пиши по-английски :)
8 Kavar
 
26.02.09
08:38
(6) Пользуешься, как понимаю Блокнотом из винды стандартным?
Скачай, например, блокнот "Akelpad"
и там в настройках укажи кодировку "866(OEM-русская)"
9 Скользящий
 
26.02.09
08:38
в фаре редактируй просто.
10 dk
 
26.02.09
08:38
(4) поменяй шрифт с system на terminal или наоборот
11 uldreams
 
26.02.09
08:39
8. угу, спасибо, сейчас попробую:-)
12 Мулька
 
26.02.09
08:40
Как все запущено.
(0) Читать до дыр Фигурнова, срочно
13 Медвед1Сник
 
26.02.09
08:40
(7) У меня проблеиа была в том что когда я писал программы на Си (Dev-C++), простые программы, то они выводили иероглифы. И мне приходилось делать транслитерацию... Я и подумал может можно как-то через реестр указать шрифт (не досовский а виндозный) для ДОСовских окон. Чтобы можно было спокойно делать свои программы и не париться.
14 Kavar
 
26.02.09
08:41
(11) Можешь даже в ннастройки не заходить. там при сохранении кодировку можно указать.
15 rie
 
26.02.09
08:43
(6) Или, как вариант, если работаешь в v8: положи на форму поле текстового документа и

ЭлементыФормы.ПолеТекстовогоДокумента1.Записать("c:\1.bat",КодировкаТекста.OEM);

Если работаешь в v7 - там есть функции OEMtoAnsi и AnsiToOEM для перекодировки.
16 dk
 
26.02.09
08:44
(14)(15) извращенцы :)
читать (10)
17 Kavar
 
26.02.09
08:46
(16) Извращенье это виндовый блокнот юзать.
18 Медвед1Сник
 
26.02.09
08:48
(17) В виндовом блокноте можно указать шрифт, Terminal должно сработать.
19 Kavar
 
26.02.09
08:52
(18) Об этом уже в 10 сказали.
Работать оно будет. Но неудобно это каждый раз шрифт менять.
В нормальных блокнотах это лучше реализовано.
20 ДенисЧ
 
26.02.09
08:54
(19) Нормальный блокнот - это бумажный.
21 rie
 
26.02.09
08:54
(16) Сам извращенец :-)

Зачем пользовать программы "сторонних производителей" (например, Блокнот от Microsoft), если v8 умеет сохранять текстовые документы в OEM?
Можно даже без формы - создать текстовый документ, затем "Сохранить как..." и - о, чудо свершилось!
22 ДенисЧ
 
26.02.09
08:55
(21) v8 - это программа стороннего производителя в ОС Виндовз
23 rie
 
26.02.09
08:57
(22) Хорошо, дополняю (21) ещё одним смайликом:
:-)
24 birkoFFFF
 
26.02.09
08:59
(23) а кто сказал что у автора есть v8 ? ))))
25 rie
 
26.02.09
09:07
(24) v7 это тоже умеет сохранять тексты в DOS-кодировке.

Хоть какая-то 1С у автора - ведь есть?
26 uldreams
 
26.02.09
09:07
24. есть у меня v8 )))) как раз его и запускаю
27 uldreams
 
26.02.09
09:08
1c 8.1
28 Kavar
 
26.02.09
09:08
(26) Получилось?
29 uldreams
 
26.02.09
09:08
пока нет)в процессе
30 vde69
 
26.02.09
09:13
в старые времена, когда русских кодировок было 4 варианта, я встраивал свою таблицу символов в код, далее менял адрес прерывания (который указывает на вторую половину таблицы символов) и у меня проблемм не было, даже с англицким досом (не руссифицированым),

кстати интересно, под cmd будет такой подход работать?
31 uldreams
 
26.02.09
09:14
Ураа!!! через 1с-ку получилось! Спасибо!!!!
32 vde69
 
26.02.09
09:17
(31) совет бывалого - откажись от русских (и с пробелами/точками) именами файлов/директорий

там грабель не одно минное поле...
33 uldreams
 
26.02.09
09:17
32. Хорошо, спасибочки)
34 uldreams
 
26.02.09
09:18
и вообще ВСЕМ спасибо за советы и поддержку!:-)
35 smaharbA
 
26.02.09
09:28
создавайте пакетник во врайтере и ваши волосы будут гладкие и шелковистые
36 big
 
26.02.09
09:47
Куясе! Что я делаю не так? Пишу в блокноте, пути на русском прописаны. И всё работает. Надо много думать и долбить клювом, чтобы это понять. :))
37 smaharbA
 
26.02.09
09:55
(36) либо сохраняешь в юникоде, либо ставишь спереди "волшебную" команду
38 Ангел- Хоронитель
 
26.02.09
10:07
(37)чувствую, опять есть какое-то простое и доступное решение, которое я простучал.
что за команда?
39 ado
 
26.02.09
10:07
(32) Нету там грабель, если есть понимание.
40 smaharbA
 
26.02.09
10:08
(38)
chcp 1251
41 big
 
26.02.09
10:27
(37,40) Угумс... И делов-то. :)))
(38) :)))
42 uldreams
 
26.02.09
13:09
(40)интересно стало как эту команду использовать.
я так понимаю, что в файле bat перед всем остальным текстом нужно написать chcp 1251 ?
43 big
 
27.02.09
06:54
(42) Да. Причем в командном окошке русские буквы все равно коряво отображаются, тогда как все пути и имена файлов система воспринимает правильно.
44 smaharbA
 
27.02.09
07:12
(43) в оконцовке ставишь
chcp 866

и видишь все без кракозябр
45 big
 
27.02.09
07:23
(44)

chcp 1251
rem "C:\Program Files\1cv81\bin\1cv8.exe" config /f"D:\Base1C\Пустая 8.1"
chcp 866
rem "C:\Program Files\1cv81\bin\1cv8.exe" config /f"D:\Base1C\Пустая 8.1"
pause

вот при такой конструкции мне все равно не удалось увидеть "\Пустая 8.1". Фих его знает почему. Плюнул, ибо работает.
46 uldreams
 
27.02.09
08:18
так что-то вообще ничего не запускается
47 uldreams
 
27.02.09
08:26
писала
"C:\Program Files\1cv81\bin\1cv8.exe" Enterprise /F"C:\Documents and Settings\shurpatova\Рабочий стол\Рабочие базы\УТ(типовая)"
сохраняла с кодировкой DOS - все работает

пробую с этой командой, пишу как (45)
chcp 1251
rem "C:\Program Files\1cv81\bin\1cv8.exe" config /F"C:\Documents and Settings\shurpatova\Рабочий стол\Рабочие базы\УТ(типовая)"
pause
сохранила не в кодировке DOS - база не запускается
48 big
 
27.02.09
08:29
Если честно, то после кучи "советов" указанных выше, я даже не могу предположить КАК вы это делаете. Я пишу в обычном Блокноте Виндовз, с обычным шрифтом в Кириллической раскладке. Все работает.

з.ы. Единственное что надо заметить, так это, что путь не такой длинный. М.б. из-за этого, но вряд ли.
49 Sj
 
27.02.09
08:40
(47) а rem там для чего во втором примере ?
50 Kavar
 
27.02.09
08:46
(49)+1

rem это закомментированная строка.
51 uldreams
 
27.02.09
08:48
(50) и что это значит?
52 Kavar
 
27.02.09
08:50
(51) Это значит, что эта строка игнорируется при выполнении.
Аналог // для 1С. Комментарий это.
53 uldreams
 
27.02.09
08:51
ага...
54 big
 
27.02.09
08:52
(51) Пост в (45) относился к (44). Т.е. я просто смотрел в командном окне отработку команды chcp 866. Т.е. будут ли отображаться русские символы. Ессно зачем мне при этом запускать саму программу?
55 uldreams
 
27.02.09
08:55
а... так команда chcp только для того используется, чтобы изменить написание команд в черном окошке?
56 Sj
 
27.02.09
08:57
сохранила не в кодировке DOS - база не запускается

как можно запустить базу, если там rem стоит ?
57 uldreams
 
27.02.09
08:58
ну сейчас убрала rem, все-равно не запускается
58 uldreams
 
27.02.09
09:02
т.е базу пытается запустить, но русские пути не воспринимает
59 uldreams
 
27.02.09
09:03
а вот в DOS кодировке воспринимает
60 Kavar
 
27.02.09
09:07
(59) Вот и не мучайся со всякими изврашениями.
Пиши на ДОС и все. :)
61 uldreams
 
27.02.09
09:07
т.е я сейчас пишу
chcp 1251
"C:\Program Files\1cv81\bin\1cv8.exe" config /F"C:\Documents and Settings\shurpatova\Рабочий стол\Рабочие базы\УТ(типовая)"
pause

пишет C:\Documents and Settings\shurpatova\Рабочий стол>тут кракозябраchcp 1251
"кракозябраchcp" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
62 uldreams
 
27.02.09
09:08
(60) да это я так, для интересу:-)
63 uldreams
 
27.02.09
09:11
о! все, работает. Когда сохранила в ANSI
64 uldreams
 
27.02.09
09:14
:-)))
65 Sj
 
27.02.09
09:34
жесть! особенно попытка запустить программу с использованием rem.
66 uldreams
 
27.02.09
09:37
(65):-) согласна, я ведь только учусь
67 Sj
 
27.02.09
09:42
(66) да ладна... это я просто так сказал... от души ;-)
68 big
 
27.02.09
09:52
фигасе вы тут отжигаете!
69 Sj
 
27.02.09
10:26
было б кого, а мы - всегда готовы!
70 smaharbA
 
27.02.09
10:28
читаем пост *.bat не воспринимает русский язык
и не паримся
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.