我想编写一个批处理脚本来重命名一个文件,该文件的文件名中包含特殊字符。 示例:“我的%文档” 如果此示例是我的文件名,如何使用批处理脚本重命名它?
答案 0 :(得分:1)
要定义包含环境变量中特殊字符的文件路径(或一般的任何字符串),请使用set
,其中整个赋值表达式包含在""
中:
rem DEFINE PATH: C:\Root\dir=sub\foo&bar^\100%!
set "FILEPATH=C:\Root\dir=sub\foo&bar^\100%%!"
唯一的问题是你必须将所有%
加倍到%%
,如上所示。
要对任何命令使用此类文件路径(或一般字符串),您需要使用延迟扩展。这样你就“愚弄”命令解释器。
将所有这些放在一起,以下内容应该有效:
rem DEFINE PATH: C:\Root\dir=sub\foo&bar^\100%!
set "FILEPATH=C:\Root\dir=sub\foo&bar^\100%%!"
rem DEFINE NEW NAME: new=name%
set "FILENEWN=new=name%%"
rem RENAME FILE
setlocal EnableDelayedExpansion
ren "!FILEPATH!" "!FILENEWN!"
endlocal