new*_*new 4 path batch-file diacritics
在批处理中,指定名称包含重音字符的路径,在文件系统中找不到文件,而删除路径中的所有重音字符时,会找到这些文件。尽管如此,我必须管理用重音字符编写的路径。有什么办法可以解决这个问题吗?
如果你需要了解我的操作系统,我在 7 32。
谢谢
默认配置下的批处理无法打印 unicode 字符,但可以识别该字符并使用它。\n这意味着您无法打印“\xc3\xba”,但可以访问名为“\xc3\xba”的文件夹或触摸名为“\xc3\xba”的文件。
\n\n然后,如果您的脚本无法访问带有重音字符的文件,可能的原因是您的脚本的编码不是 ANSI,\n因此在记事本中打开脚本并确保使用 ANSI 编码(无 utf-8 或 unicode)保存它。
\n\n例子:
\n\n@echo off\n\nCHCP 850 >NUL\n\nfor %%# in (*.txt) do (\n\n Echo [+] reading File: .\\%%~nx# | MORE\n Type "%%~nx#"\n) \n\nPause>NUL\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\n\n[+] reading File: .\\\xc3\xa1\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\xc3\xa0\xc3\xa8\xc3\xac\xc3\xb2\xc3\xb9 \xc3\xb1 \xc3\x91 \xc3\xa7 \xc3\x87.txt\n\nThis is the text content of my file with ISO-Latin characters\nRun Code Online (Sandbox Code Playgroud)\n\n如果你想在 CMD 中打印重音字符,那么你需要进行 char 转换,这可以解决问题:
\n\n@echo off\nCHCP 850 >NUL\ncopy con Mychars.txt\nRun Code Online (Sandbox Code Playgroud)\n\n在该提示中,您将写入所需的字符,例如“ \xc3\xa9\xc3\xad\xc3\xb3\xc3\xba ”,然后您将获得一个包含以下内容的“Mychars.txt”文本文件:
\n\n \xe2\x80\x9a\xc2\xa1\xc2\xa2\xc2\xa3\nRun Code Online (Sandbox Code Playgroud)\n\n现在您可以使用该字符来打印重音字符:
\n\n@echo off\necho\xc2\xa0\xe2\x80\x9a\xc2\xa1\xc2\xa2\xc2\xa3\nPause>NUL\nRun Code Online (Sandbox Code Playgroud)\n\n输出:
\n\n\xc3\xa9\xc3\xad\xc3\xb3\xc3\xba\nRun Code Online (Sandbox Code Playgroud)\n\nPS1:请记住执行我所说的以 ANSI 编码保存脚本的所有操作。
\n\nPS2:请注意我如何使用 CHCP 850 命令,这意味着 CMD 的代码页,默认情况下 CMD 使用 850 代码页,但我使用默认的 1250 代码页启动 CMD 以避免所有这些问题,因此在我的示例中我需要使用代码页 850 向您展示。
\n\n您可以使用注册表项设置默认的 CMD 代码页:
\n\nREG ADD "HKCU\\Software\\Microsoft\\Command Processor" /V "Autorun" /T "REG_SZ" /D "chcp 1250 >NUL" /F >NUL 2>&1\nRun Code Online (Sandbox Code Playgroud)\n\n您可以在此处阅读有关代码页的信息:http://msdn.microsoft.com/en-us/library/cc195064.aspx
\n| 归档时间: |
|
| 查看次数: |
15699 次 |
| 最近记录: |