Я отлаживаю командный файл Windows. Сбой при использовании расширенных (> 0x7f) символов в путях или именах файлов. Кажется, проблема связана с передачей параметров в командный файл, который вызывается из другого.
Например, эта команда работает должным образом:
xcopy "Pezuñero\1 - 001.wav" \temp
Это не:
call another.cmd "Pezuñero"
Содержимое файла "another.cmd":
xcopy "%~1\1 - 001.wav" \temp
Синтаксис% ~ 1 расширяет параметр и удаляет кавычки. Это необходимо, поскольку в реальном командном файле пути в вызывающем или вызываемом командном файле могут иметь пробелы.
Результат второго примера (скопированного из окна CMD) таков:
C:\>call another.cmd "Pezu±ero"
C:\>xcopy "Pezu±ero\1 - 001.wav" \temp
File not found - 1 - 001.wav
0 File(s) copied
Обратите внимание, что символ «-» (0xF1) был изменен на «±» (0xB1).
Может кто-нибудь объяснить, что происходит и как обойти это?