![]() |
![]() |
|
При запуске bat файла теряются русские символы | ☑ | ||
---|---|---|---|---|
0
Viktor Zull
27.11.06
✎
20:22
|
Уважаемые участники форума, возможно мой вопрос не связан прямо с 1С, а скорее с операционной системой, и мне неизвестно было в какую секцию его следовало отправить, поэтому он именно здесь.
Содержание его в следующем: У меня создано на диске C 2 каталога: "Из этой папки"; "В эту папку" В каталоге "Из этой папки" есть файл "1.txt". Я запускаю cmd.exe и пишу в нем строку копирования файла: copy /y "C:\Из этой папки\1.txt" "C:\В эту папку\1.txt" при выполнении этой команды файл копируется нормально. Если я помещаю такую же команду в bat файл, а потом из cmd запускаю его, то русские символы заменяются на другие - совершенно непонятные, в результате чего путь к файлу не найден и файл не скопирован. Строка выглядит так: copy /y "G:\╚ч ¤Єющ яряъш\1.txt" "G:\┬ ¤Єє яряъє\1.txt" В чем причина этого? Очевидно не поддерживается кириллица. Если кто-нибудь знает как можно это исправить, подскажите,пожалуйста. Используется операционная система Windows XP Professional. |
|||
1
Валентин
27.11.06
✎
20:37
|
а кодировка в которй батник сохранен какая?
ИМХО руские имена не всегда хорошо. |
|||
2
Viktor Zull
27.11.06
✎
20:49
|
Наверное кодировка не DOS-овская а WINDOWS. Я сначала файл текстовый делаю, а потом ему расширение меняю на bat. В этом моя ошибка? Как мне точно файл в кодировке DOS cохранить?
Русские имена, да еще и с пробелами - это конечно не хорошо, но допустим файл должен везде правильно исполняться, у любого пользователя, на любом компе, и неизбежно найдутся такие, где ппаки будут названы русскими буквами. |
|||
3
Viktor Zull
27.11.06
✎
20:49
|
Кстати, в 1с есть процедура КомандаСистемы(<Строка команды>).
Если я пишу (1): КомандаСистемы("copy /y ""C:\Из этой папки\1.txt"" ""C:\В эту папку\1.txt"""); и (2): КомандаСистемы("C:\Из этой папки\bb_test.bat"); Тогда в первом случае файл копируется, а во втором нет. А ведь может возникнуть необходимость запустить bat файл из 1c. |
|||
4
Viktor Zull
27.11.06
✎
20:52
|
При сохранении текстового файла блокнотам там есть параметр "Кодировка" со следующими значениями:
ANSI Юникод Юникод Bin Endian UTF-8 Какой выбрать? |
|||
5
Viktor Zull
27.11.06
✎
20:54
|
Попробывал во всех доступных в блокноте кодировках сохранить, все равно не понимаются русские символы.
|
|||
6
Viktor Zull
27.11.06
✎
20:58
|
Еще вот так мне сделать посоветовали:
В autoexec.nt добавить lh %SystemRoot%\system32\kb16 ru В реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\DosKeybCodes значение ключа 00000409 изменить с us на ru. Попробывал - не помогло. |
|||
7
Neco
27.11.06
✎
20:58
|
(5) Нужна DOS кодировка. Обычно делаю батники в ФАРе так что проблем не вызывает.
|
|||
8
Viktor Zull
27.11.06
✎
21:01
|
Говорили мне когда-то, что в XP лучше исполняемые файлы делать не с расширением *.bat, а с *.cmd. Не знаю насколько это верно, но cmd также запускается - русский текст сбивается.
|
|||
9
Viktor Zull
27.11.06
✎
21:02
|
В ФАРе? Имеется ввиду Far manager?
|
|||
10
Валентин
27.11.06
✎
21:04
|
где-то абрахамс давал пример конвертации с ср866 на 1251 и обратно. Поройся по форуму
|
|||
11
Viktor Zull
27.11.06
✎
21:06
|
Хорошо, посмотрю.
|
|||
12
Neco
27.11.06
✎
21:12
|
(9) Да Far
|
|||
13
Viktor Zull
27.11.06
✎
21:23
|
Достал FAR. Вот, только видел его последний раз очень давно. Neco, Вы вероятно часто с этой программой работаете, подскажите как мне файл создать.
|
|||
14
Валентин
27.11.06
✎
21:24
|
шифт+ф4 - имя. Редактируем. ф8 - меняет кодировку.
Это и еще много интересного можно узнать нажав ф1 или вспоммнив как работается в нортоне |
|||
15
Neco
27.11.06
✎
21:29
|
(13) Не так уж часто, но команды за 20 лет не сменились: Shift+F4 - создать и редактировать файл, F4 - редактировать, F3 - просмотр, F8 - сменить кодировку. Вообщем, Валентин тебе уже подсказал, спасибо ему.
|
|||
16
Viktor Zull
27.11.06
✎
21:35
|
Спасибо. Я когда файл свой открыл там была как раз такая строка:
copy /y "G:\╚ч ¤Єющ яряъш\1.txt" "G:\┬ ¤Єє яряъє\1.txt" Переписал её, сохранил. Теперь bat-ник запускается. Файл копируется. Neco,Валентин,спасибо Вам большое. А вот если я не Far буду использовать, а другие программы, разработанные для DOS, например Edit, Basic, или Turbo Pascal, тогда файл тоже в кодировке для DOS будет сохраняться? Получается программу для DOS надо использовать. |
|||
17
Валентин
27.11.06
✎
21:43
|
Тут не важно что использовать. Важно какие данные ты подаешь на вход командного интерпретатора. просто кодировки очень сильно меняют смысл файла. Найди что нибудь типа iconv или recode и используй. Тогда будет не важно где ты создал файл
|
|||
18
Viktor Zull
27.11.06
✎
21:45
|
Проблема моя решена. Всем учавствовавшим в рассмотрение вопроса ещё раз большое спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |