我正在使用 CMD 批处理文件通过 REN 命令重命名数百个文件,但是名称中带有“%”的文件被跳过:
REN "40% @ thesuper.ogg" "ZXS 40% @ thesuper.ogg"
我猜批处理文件解释器将 % 视为变量,尤其是当其后跟有 @ 符号时。问题是,文件名中应该同时包含 % 和 @。有没有办法强制重命名?
我正在使用 CMD 批处理文件通过 REN 命令重命名数百个文件,但是名称中带有“%”的文件被跳过:
REN "40% @ thesuper.ogg" "ZXS 40% @ thesuper.ogg"
我猜批处理文件解释器将 % 视为变量,尤其是当其后跟有 @ 符号时。问题是,文件名中应该同时包含 % 和 @。有没有办法强制重命名?
此
for /f
循环命令列出名称中.ogg
包含%
字符的文件。它将文件名定义为两部分: 之前的部分%
和 之后的部分。为了%
在命令中正确处理 ,%
添加了一个额外的字符作为%
本身的转义,而首字母%
使用 进行转义^
。这可以防止命令解释器将 double 误解%%
为对没有值的变量的引用(null
)。原始命令无法重命名这些文件,因为它没有正确考虑处理文件名中的字符时所需的转义%
。但请注意,这
@
不会以任何方式干扰rename
通过命令行和/或批处理文件的命令。