Я хочу сделать очень простую вещь: скопировать файл.
Copy - простая (и фундаментальная) команда. Это должно быть легко, но это кажется сложным, когда дело доходит до имен файлов Unicode (с использованием English XP , cmd.exe и сценария .cmd ).
Мне удалось создать файл .cmd с именами файлов Unicode, как показано ниже
:: To create the final .cmd script
::
set SRCE=D:\_cmd\cpp
set DEST=H%SRCE:~1%
cmd.exe /U /c DIR /A:-D /s /b "%SRCE%" >"SRCE.UTF16"
cmd.exe /U /c DIR /A:-D /s /b "%DEST%" >"DEST.UTF16"
ConvUTF.exe 1628 "DEST.UTF16" "DEST.UTF-8"
ConvUTF.exe 1628 "SRCE.UTF16" "SRCE.UTF-8"
:: Then, with `sed.exe`, `diff.exe`, and `ConvUTF.exe` again...
:: the resulting UTF-8 (or UTF16) .cmd file looks like this...
::
copy "D:\_cmd\cpp\ā.क.test" "H:\_cmd\cpp\"
Команда copy отлично работает, когда я запускаю ее непосредственно в command prompt , но не работает, когда используется в сценарии .cmd .
Ошибки UTF-8 .cmd : The system cannot find the file specified
UTF16 .cmd не проходит первый NULL-байт (первого символа), а просто выходит.
Есть ли способ сделать это из сценария .cmd ? (Я хочу использовать оболочку cmd.exe )
Возможно, есть служебная программа, которую можно вызвать из моего .cmd ...
Все предложения приветствуются.
PS Чтобы прояснить вопрос о Манине ... Меня не волнует, как имена файлов Unicode отображаются в окне консоли (этого просто не происходит для большинства нелатинских букв в окне cmd.exe)... Меня интересует только то, что я могу скопировать файл с буквами Unicode в своем имени файла - через пакетный "скрипт" .cmd.
