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


1

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

1
Що робить xcopy робити з вашою проблемою? Ваш пакетний файл використовується dir.
DavidPostill

На жаль, я мав на увазі реж, а не xcopy.
Alex

Відредагуйте своє запитання правильною інформацією.
Twisty Impersonator

Відповіді:


0

Чуттєвий mojibake випадок.

Кодування цільового файлу > перенаправлення в командному рядку 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

==>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.