我正在尝试使用批处理脚本替换文件名中的字符串,但如果文件有感叹号或与号,则会遇到问题。
Setlocal enabledelayedexpansion
Set "Pattern=[String_A]"
Set "Replace=[B_String]"
For %%a in (*.*) Do (
Set "File=%%~a"
Ren "%%a" "!File:%Pattern%=%Replace%!"
)
上面的代码适用于没有这些文件名的文件名,但我需要其他帮助。
这是我必须多次运行的东西(它是更大脚本的一部分)。
任何帮助表示赞赏。
问题是set "file=%%~a
只有在禁用延迟扩展的情况下,扩展才会安全。
解决方案是切换延迟扩展模式。
Setlocal DisableDelayedExpansion
Set "Pattern=[String_A]"
Set "Replace=[B_String]"
For %%a in (*.*) Do (
Set "File=%%~a"
Setlocal EnableDelayedExpansion
Ren "!file!" "!File:%Pattern%=%Replace%!"
endlocal
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句