用于重命名文件名中具有特殊字符的文件的批处理脚本

时间:2015-09-18 09:47:05

标签: windows batch-file

我想编写一个批处理脚本来重命名一个文件,该文件的文件名中包含特殊字符。 示例:“我的%文档” 如果此示例是我的文件名,如何使用批处理脚本重命名它?

1 个答案:

答案 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