我想通过Windows下的拖放通过批处理文件处理一些文件。
一些文件的名称中包含 unicode 字符,例如 Example_ěø.txt
不幸的是,许多非 ASCII 字符在此过程中被破坏了。例如,使用一个简单的批处理文件,如
echo %*
当我拖放具有上面给出的示例名称的文件时,我得到:
C:\>echo "C:\Example_eo.txt"
"C:\Example_eo.txt"
所以ěø已经转换为eo,自然找不到该文件。
Windows 批处理文件中是否有任何方法可以访问拖放到批处理文件中的文件的实际 unicode 名称/路径?
解答: 使用 chcp 65001,但为了防止命令终止 bat 文件,有必要将命令的任何输出路由到 nul。我还发现有必要使用 && 将以下命令放在同一行。所以我的示例 bat 文件现在显示为
chcp 65001 > nul && echo %* && pause
其中显示了放置在其上的文件名/路径的 unicode/utf-8 版本。