我需要在一個批處理文件中複製多個文件。這些文件具有映射到不同代碼頁的Unicode名稱。Windows批處理:(robo)複製命令的Unicode參數
實施例:
set ArabicFile=ڊڌڵڲڛشس
set CyrillicFile=щЖЛдЉи
set GermanFile=Bücher
copy %ArabicFile% SomePlaceElse
copy %CyrillicFile% SomePlaceElse
copy %GermanFile% SomePlaceElse
問題:批處理文件不能是Unicode。
問題:如何將Unicode文件名寫入批處理文件,以便複製命令識別它們?
注:
我不在乎文件名的顯示方式。
其實批處理文件不僅僅是複製這些文件,我只是簡化了描述,使問題更清晰。
正確的批處理文件:
隨着Arnout的回答我修改我的批處理文件,如下所示。它現在可以正常工作而不需要更改字體(這會很麻煩,就像Arnout評論的那樣)。
@echo off
chcp 65001
set ArabicFolder=ڊڌڵڲڛشس
set CyrillicFolder=щЖЛдЉи
set GermanFolder=Bücher
robocopy /e d:\temp\test\%ArabicFolder% d:\temp\test2\%ArabicFolder% /log:copy.log
robocopy /e d:\temp\test\%CyrillicFolder% d:\temp\test2\%CyrillicFolder% /log+:copy.log
robocopy /e d:\temp\test\%GermanFolder% d:\temp\test2\%GermanFolder% /log+:copy.log
如果您打算使用可能包含Unicode的命令輸出,則可能需要更改字體*) – Joey 2010-11-16 12:23:16
嗯,是的,這就是我的意思,「假設您不是將非ASCII輸出寫入控制檯」... – Arnout 2010-11-16 12:27:21
很酷,這個工程;-)只有gotcha:我如何設置批處理文件中的字體?批處理文件將在多臺計算機上運行,並且在運行腳本之前我無法重新配置它們。並且需要更改字體 - 如果我不更改字體,set命令會失敗。 – 2010-11-16 14:05:29