.BAT и русские имена

Подскажите, как сделать в .bat пакетную обработку файлов в директории?

Код типа


for /f "tokens=*" %%X IN ('dir /b *.lrcat') do (    my_command "%%X")

натыкается на такую бяку — длинные имена с русскими символами превращаются в хрен знает что. И my_command не воспринимает получившееся имя файла. Cmd вообще в какой кодировке предоставляет результаты? В 866 или 1251? Или я что-то в корне не то делаю? Лет пятнадцать уже с пакетными файлами не общался…

Непосредственно в командной строке всё делается на ура. Но стоит написать bat, как вот оно как.

++ Коротких имён нет, отключены.

Подскажете, в благодарность расскажу, как ускорить Lightroom. И Firefox впридачу.

2 Comments

  1. Переименовать .bat в .cmd. По расширению bat вызывается “ДОСовый” интерпретатор command.com, который и работает с ограниениями ДОСа, а cmd обрабатывается 32-битным консольным интерпретатором cmd, который, собственно, и запускается ярлыком командной строки в меню винды.