在Windows shell中,我遇到了chcp 65001
命令的问题。
我需要列出文件夹中的文件列表。 因此,我打开了cmd.exe,输入了以下命令:
cd folder
dir /B /O:N > list_of_files.txt
它起作用了,但是我在一些文件名中遇到了特殊的、非ASCII字符的问题。所以我添加了chcp 65001
。
一切都正常工作,但是当我把这些命令放入.bat文件时,脚本就无法运行。
因此,
cd folder
chcp 65001
dir /B /O:N > list_of_files.txt
没有生成清单。
和
cd folder
chcp 65001 && dir /B /O:N > list_of_files.txt
以及
cd folder
chcp 65001 > nul && dir /B /O:N > list_of_files.txt
生成了列表,但使用的是默认编码 :/。
在 cmd.exe 中一切正常,但在.bat 文件中不行。
我已阅读主题:stackoverflow.com/questions/2182568/batch-script-is-not-executed-if-chcp-was-called,但没有帮助。
编辑:
我部分解决了问题,将 chcp 65001
改为 chcp 1250
,因为所有字符都是以该编码表示的。但实际上这并没有回答问题。
timeout 5
。但当我将 65001 更改为其他有效的编码时,一切都正常工作。 - marochcp 65001&dir /B /O:N&pause
- foxidrive> list.txt
,它会生成列表,但没有 Unicode 字符(就像我在问题中举的例子)。 - maro