XCopy со специальными символами

764
alex

Xcopy в моем командном файле неправильно копирует специальные символы. Š превращается в è. Есть и другие забавные символы, которые также изменены.

Это команда в командном файле:

dir "\\USATL02ERAS40\auditfiles\Loblaws\LCL_2016\Z-DT\NDS 2016\LCL SUPPLIED 2016\*.xls*" /A /B /S > XLSVndDir1.tx 

Это имя файла:

1027948_16356344_wk 35 @NIVEA BODY@48965 Body 625ml 77240 CrŠme Soft 250-200ml 24253 Inshower @ AD @ $0 30 $0 50 $0 05 @ RCWC EF_VS.xlsm 

Это вывод в моем текстовом файле:

1027948_16356344_wk 35 @NIVEA BODY@48965 Body 625ml 77240 Crème Soft 250-200ml 24253 Inshower @ AD @ $0 30 $0 50 $0 05 @ RCWC EF_VS.xlsm 

Как мне получить правильное имя с помощью специальных символов?

1
Если вы используете `type` для просмотра выведенного текста fie в командной строке, какой символ отображается (Š или è)? Ƭᴇcʜιᴇ007 6 лет назад 1
Какое отношение `xcopy` имеет к вашей проблеме? Ваш командный файл использует `dir`. DavidPostill 6 лет назад 1
Извините, я имел в виду dir, а не xcopy. Alex 6 лет назад 0
Пожалуйста, отредактируйте ваш вопрос с правильной информацией. Twisty Impersonator 6 лет назад 0

1 ответ на вопрос

0
JosefZ

Яркий случай с моджибаке .

Кодирование целевого файла >перенаправления в командной строке Windows строго зависит от (и по умолчанию) активной кодовой страницы (если не в cmd /U).

Пример:

==> dir /b /S ".\files\1207235\*.txt" d:\bat\files\1207235\Crème.txt  ==> del 1207235log.txt  ==> chcp 437 Active code page: 437  ==> >>1207235log.txt dir /b /S ".\files\1207235\*.txt"  ==> chcp 1252 Active code page: 1252  ==> >>1207235log.txt dir /b /S ".\files\1207235\*.txt"  ==> ==> type 1207235log.txt d:\bat\files\1207235\CrŠme.txt d:\bat\files\1207235\Crème.txt  ==> chcp 437 Active code page: 437  ==> type 1207235log.txt d:\bat\files\1207235\Crème.txt d:\bat\files\1207235\CrΦme.txt  ==> 

Похожие вопросы