批处理:文件名中的%

时间:2013-05-26 00:03:45

标签: batch-file

我认为这是一个简单的批量编程问题,但经过多次搜索后,我找不到答案。

我正在试图弄清楚如何引用名称中包含困难字符的文件。

似乎双引号具有从字面上处理大多数封闭字符的效果。例如,对于名为^^。txt的文件,dir“^^。txt”将找到该文件,而dir ^^。txt则不会。

然而,我不知道如何逃避%。例如,对于名为%ERRORLEVEL%.txt的文件,这些文件都找不到该文件:

dir“%ERRORLEVEL%。txt”
dir“%% ERRORLEVEL %%。txt”
dir“^%ERRORLEVEL ^%。txt”

任何建议都将不胜感激。

3 个答案:

答案 0 :(得分:5)

Windows命令提示符的转义字符为^。它没有引号。

dir ^%errorlevel^%.txt

对于您的其他示例^^.txt,请使用:

dir ^^^^.txt

答案 1 :(得分:1)

始终避免文件名中的%和^。在全局文件管理器中将%重命名为'percent'。

They are next to impossible to handle properly in many batch commands.

答案 2 :(得分:0)

在批处理脚本中,您必须将%加倍,例如:

@echo off 
dir %%errorlevel%%.txt

顺便说一下。你不应该使用cmd默认变量或命令名来做其他事情(errorlevel)。