我需要在一个批处理文件中复制多个文件。这些文件具有映射到不同代码页的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