默认配置下的批处理无法打印 unicode 字符,但可以识别该字符并使用它。
这意味着您无法打印“ú”,但可以访问名为“ú”的文件夹或触摸名为“ú”的文件。
然后,如果您的脚本无法访问带有重音字符的文件,原因可能是您的脚本的编码不是 ANSI,
因此,在记事本中打开脚本并确保使用 ANSI 编码(无 utf-8 或 unicode)保存。
Example:
@echo off
CHCP 850 >NUL
for %%# in (*.txt) do (
Echo [+] reading File: .\%%~nx# | MORE
Type "%%~nx#"
)
Pause>NUL
Output:
[+] reading File: .\áéíóúàèìòù ñ Ñ ç Ç.txt
This is the text content of my file with ISO-Latin characters
如果你想在 CMD 中打印重音字符,那么你需要进行 char 转换,这可以解决问题:
@echo off
CHCP 850 >NUL
copy con Mychars.txt
在该提示中,您将写入所需的字符,例如“éíóú”,那么您将获得一个包含以下内容的“Mychars.txt”文本文件:
‚¡¢£
现在您可以使用该字符来打印重音字符:
@echo off
echo ‚¡¢£
Pause>NUL
Output:
éíóú
PS1:请记住执行我所说的以 ANSI 编码保存脚本的所有操作。
PS2:请注意我如何使用 CHCP 850 命令,这意味着 CMD 的代码页,默认情况下 CMD 使用 850 代码页,但我使用默认的 1250 代码页启动 CMD 以避免所有这些问题,因此在我的示例中我需要使用代码页 850 向您展示。
您可以使用注册表项设置默认的 CMD 代码页:
REG ADD "HKCU\Software\Microsoft\Command Processor" /V "Autorun" /T "REG_SZ" /D "chcp 1250 >NUL" /F >NUL 2>&1
您可以在此处阅读有关代码页的信息:http://msdn.microsoft.com/en-us/library/cc195064.aspx http://msdn.microsoft.com/en-us/library/cc195064.aspx