Интересно, на самом деле это вообще не работает.Если вы сделаете следующее:
pax> echo echo yy >xx.cmd
pax> chcp 850
pax> xx
yy
pax> chcp 65001
pax> xx
pax> _
, вы получите ничего .Он не просто пропускает вывод, он вообще не работает (о чем свидетельствует start .
перед строкой echo
).На кодовой странице 850, Explorer работает, но не для кодовой страницы 65001.
Здесь обсуждается вопрос о здесь .Вы можете заставить ваш скрипт работать с:
chcp 65001 && xx.cmd && chcp 850
, поэтому, похоже, что это некая проблема в запуске командных файлов, но только когда кодовая страница 65001, прежде чем вы введете команду!
Другие в сети, кажется, предполагают, что PowerShell может быть хорошим выбором, учитывая ограниченную поддержку в cmd.exe
.Это решение вам придется оценить самостоятельно, но, работая в большой организации со многими инструментами для выполнения той же работы, я подозреваю, что Microsoft будет прилагать какие-либо усилия по улучшению PowerShell, а не более старой командной оболочки.Их ресурсы велики, но не безграничны.