![]() |
что делать если bat в ascii а в пути к файлам папки с unicode именами?
всем доброго времени суток.
есть ли способ обойти проблему? |
Покажите код пакетного файла.
|
я ещё в процессе но проблемная часть выглядит приблизительно так:
X:\FolderWithUnicodeName\setup.exe в принципе варианты решения есть (например link or hardlink). но мне интересно как поступают профессионалы. |
vsuwi, вы случаем не усложняете вопрос?
Юникодные имена — имеются в виду лишь имена на кириллице, типа "Вася", "Маша", "Мои любимые фильмы" — или в т.ч. имена на французском, немецком, испанском и т.д., имеющих каждый свои собственные символы с надстрочными знаками? |
Вложений: 1
![]() вот пример. |
vsuwi, а при чём тут юникод в пути к файлу??
В вашем примере сам файл содержит юникодные символы, которые будут потеряны. Используйте не рудиментарный Блокнот, а редакторы, которые нормально работают с юникодом. |
блокнот умеет сохранять в юникоде но тогда батники не работают.
во всяком случае у меня на вин 10. ![]() на батник в юникоде винда ругается. |
vsuwi
Тэк-с... Т.е. вы показали не результат работы батника — а результат сохранения текста батника (в тексте которого единственная строка, содержащая латиницу и кириллицу). Вы эту строку сами вбивали — или откуда-то копировали? Поскольку зрительно тут текст на чистом русском. Который для батника надо сохранять в кодировке DOS (OEM с кодовой страницей 866), а не ANSI (Windows-1251): иначе, даже когда вы поставите в языковых настройках язык для не-юникодовых программ "Russian" вместо, судя по всему, стоящего сейчас "English (US)" — батник не заработает. |
диспозиция: windows 10 - local: British English.
мои действия и результат: 1) открыл блокнот ввел Код:
F:\Example\calc.bat result: исполняется calc.bat всё отлично! 2) открыл блокнот ввел Код:
F:\Справки\calc.bat 2.2) батник сохранённый в юникод не работает в принципе. примеры: bat file saved with unicode+folder name in path with unicode: Код:
F:\Справки\calc.bat Код:
C:\Users\me\Documents\D3TEMP>∩╗┐F:\╨í╨┐╤Ç╨░╨▓╨║╨╕\calc.bat Код:
F:\Example\calc.bat Код:
C:\Users\me\Documents\D3TEMP>F:\Example\calc.bat |
Цитата:
Батники, содержащие русские имена, необходимо сохранять в кодировке DOS с кодовой страницей 866. И не забывать брать имена с путями, содержащие пробелы, в двойные кавычки. Т.е. не просто c:\users\Вася Пупкин\Рабочий Стол\text.txt, а "c:\users\Вася Пупкин\Рабочий Стол\text.txt" (а правила хорошего тона вообще рекомендуют использовать кавычки даже при отсутствии пробелов). Это всё. Цитата:
Привожу скриншот с русской версии Win-10 — но, думаю, на английской проделать по образцу будет несложно: ![]() После того, как вы измените здесь язык на русский — Блокнот ваш при сохранении перестанет ругаться. Но вас это не спасёт, поскольку Блокнот не умеет сохранять в кодовой странице 866. Я для этих целей использую AkelPad — но могу назвать ещё с десяток-другой текстовых редакторов, которые, в отличие от Блокнота, сохраняют в формате массы кодовых страниц, в т.ч. в 866. PS Не пробовал, но скорее всего даже язык неюникодных программ можно не трогать — а просто сохранять в кодировке 866. Используя не рудиментарный Блокнот, а чуть более продвинутый текстовый редактор. Да даже MS Word умел сохранять в 866. |
не работает. воспроизвожу по пунктам:
открываю Notepad++ >Encoding >Character sets >Cyrillic >OEM 866 (надпись внизу меняется на DOS\Windows OEM 866) далее копирую путь F:\Справки\calc.bat (когда пишешь с клавиатуры результат тот же) и вставляю в бат. сохраняю и запускаю: Код:
C:\Users\me\Documents\D3TEMP>F:\æ»αáó¬¿\calc.bat но моя проблема не с русским а с юникодом. в случае если в названии папки два языка допустим "справки_Export" то есть code page 437 + 866 что положено делать? |
Цитата:
Но вот если используется и верхняя половина страницы 437, т.е. коды с надстрочными знаками типа немецких умляутов, то тут не подскажу. Видимо переходить с батников на Winows Sripting или, возможно, на PowerShell. Но это уже без меня. :) Цитата:
Цитата:
|
нашел решение по поводу code pages - надо запускать cmd с ключом /u
вот так: Код:
start "UNICODE" cmd /u Код:
"C:\Users\me\Documents\D3TEMP\˂˃❰❱❮❯❬❭⟨⟩⟦⟧⟪⟫⧼⧽⦂⧵⧶⧷⧸⧹⻄⻖⻆⾸㊶㊷ꉄꉅꉆꉇꔘ𓅃🃃🃇🃏🐒🐑ĂăijĴΥΦΣБВГ҉הדרڣڤڥ᠁᠂᠃᠄\˂˃❰❱❮❯❬❭⟨⟩⟦⟧⟪⟫⧼⧽⦂⧵⧶⧷⧸⧹⻄⻖⻆⾸㊶㊷ꉄꉅꉆꉇꔘ𓅃🃃🃇🃏🐒🐑ĂăijĴΥΦΣБВГ҉הדרڣڤڥ᠁᠂᠃᠄+.bat" upd: Код:
CHCP 65001 спасибо mwz, что подсказали куда копать. |
Время: 18:18. |
Время: 18:18.
© OSzone.net 2001-