在批处理,指定名称中包含重音字符的路径的路径,文件不被发现到,而 剥离出路径中的所有重音字符的文件系统,这些文件被发现。不过, 我来管理与重音字符写的路径。有什么办法可以解决这个问题吗?管理与重音字符
如果您需要了解我的操作系统,我在SEVEN 32
感谢
在批处理,指定名称中包含重音字符的路径的路径,文件不被发现到,而 剥离出路径中的所有重音字符的文件系统,这些文件被发现。不过, 我来管理与重音字符写的路径。有什么办法可以解决这个问题吗?管理与重音字符
如果您需要了解我的操作系统,我在SEVEN 32
感谢
批量使用默认配置不能打印Unicode字符,但是可以识别字符并使用它。 这意味着你不能打印“ú”但是你可以查看在一个名为“U”或触摸被称为“u”的文件夹。
然后,如果您的脚本无法访问带有重音字符的文件,原因可能是您的脚本编码不是ANSI,因此请在记事本中打开脚本并确保使用ANSI编码保存它(no 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代码页,但我启动CMD以默认的1250代码页以避免所有这些问题我需要使用代码页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
这不起作用:
@echo off
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"
此作品:
@echo off
chcp 1252
start "" "C:\Users\dmb3419\Documents\dev\ééééééééé"
我有一些西里尔字符的路径和文件名,并没有与他们的问题。你可以发表一些例子吗?你使用什么编辑器进行批量编程?你能处理for循环中的文件名,例如。 (%)我在(*)do echo(%%〜i'? – Endoro 2013-04-23 23:16:31
编辑器,我使用的是bloc-notes或notepad ++。这是写的代码! @echo off&setlocal for/f“tokens = 2 * delims ==“%% x in(Myfile)do( if/i”%% x“==”dir1“set”path1 = %% y“ if/i”%% x“==”dir2“set “PATH2 = %% Y” ) 回声%PATH1% 回声%PATH2% FOR/F “令牌= *” %%中的x('FINDSTR/v/C:”“MYFILE')做( echo“%path1%\ %% x.txt”===================================== ===== 调用second.bat“%path1%\ %% x.txt”) – new 2013-04-23 23:22:25
一次%path1%或%path2%包含重音字符,找不到文件,所以调用second.bat“%path1%\ %% x.txt”)是错误的。如果我将aceented字符删除到path1和path2中,那就对了。但我不想。谢谢 – new 2013-04-23 23:37:13