在批处理中,指定名称中包含重音字符的路径,在文件系统中找不到文件 剥离路径中的所有重音字符,找到这些文件。尽管如此, 我必须管理用重音字符编写的路径。有什么方法可以解决这个问题吗?
如果你需要了解我的操作系统,那我就是SEVEN 32。
由于
答案 0 :(得分:4)
默认情况下,批量配置无法打印unicode字符,但CAN识别出字符并使用它。 这意味着您无法打印“ú”,但您可以访问名为“ú”的文件夹或触摸名为“ú”的文件。
然后,如果您的脚本无法访问带有重音字符的文件,可能原因是您的脚本编码不是ANSI, 所以在记事本中打开脚本并确保用ANSI编码保存它(没有utf-8或unicode)。
示例:强>
@echo off
CHCP 850 >NUL
for %%# in (*.txt) do (
Echo [+] reading File: .\%%~nx# | MORE
Type "%%~nx#"
)
Pause>NUL
<强>输出:强>
[+] reading File: .\áéíóúàèìòù ñ Ñ ç Ç.txt
This is the text content of my file with ISO-Latin characters
如果你想在CMD中打印重音字符,那么你需要进行字符转换,这可以解决问题:
@echo off
CHCP 850 >NUL
copy con Mychars.txt
在该提示中,您将编写所需的字符,例如“éíóú”,然后您将获得包含此内容的“Mychars.txt”文本文件:
‚¡¢£
现在您可以使用该字符打印带重音的字符:
@echo off
echo ‚¡¢£
Pause>NUL
<强>输出:强>
éíóú
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
答案 1 :(得分:1)
这不起作用:
@echo off
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"
这有效:
@echo off
chcp 1252
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"
答案 2 :(得分:0)
在使用.bat和xcopy的路径名中,我对法语口音有类似的问题。
使用:
@echo off
chcp 1252
为我处理了此问题,并且.bat文件中的重音已正确识别。 在MS server2012 R2 cmd.exe下运行
答案 3 :(得分:0)
请,请参阅下面的技巧如何解决我的问题而不将其与外来代码混合:
CHCP 1252
调用“ C:\ Program Files \ Microsoft Office \ root \ Office16 \ EXCEL.EXE”“ Z:\ CYRO \ ARTE \ ArteRHDicionáriode Dados.xlsx”
调用“ C:\ Program Files \ Microsoft Office \ root \ Office16 \ EXCEL.EXE”“ Z:\ CYRO \ ARTE \Unificação\ 01-材质APOIO \ PADRAO_TABELA_CONVERSAO.xlsx”
希望它可以帮助其他人!
最好的问候。