Если вы хотите, чтобы в пакетном файле поддерживалась юникод, то CHCP в отдельной строке просто прерывает пакетный файл. То, что я предлагаю, это помещать CHCP в каждую строку пакетного файла, для которой требуется Unicode, следующим образом
chcp 65001 > nul && <real command here>
Пример: В моем случае я хотел получить хороший TAIL из моих файлов журнала во время отладки, но содержимое даже для символов Latin-1 было испорчено. Итак, вот мой командный файл, который оборачивает реальную реализацию хвоста из Windows Resource Kit.
@C:\WINDOWS\system32\chcp.com 65001 >nul && tail.exe -f %1
Кроме того, для вывода на консоль необходимо установить шрифт истинного типа, т. Е. Консоль Lucidia.
И, по-видимому, для вывода в файл командная строка должна работать как Unicode, поэтому вы должны запустить свой пакетный скрипт следующим образом
cmd /u /c <batch file command here>
Отказ от ответственности: протестировано в Windows XP sp3 с Windows Resource Kit.