我需要一个批处理文件来搜索短语“Ch_XX”并在PDF文件中添加一个“Ch_XX_Pg”。
我的PDF文件名看起来像......
01_Vig12345_ch01_001-020.pdf
02_Vig12345_ch02_021-046.pdf
03_Vig12345_ch03_047-078.pdf
对于这些文件,输出应该是......
01_Vig12345_ch01_pg001-020.pdf
02_Vig12345_ch02_pg021-046.pdf
03_Vig12345_ch03_pg047-078.pdf
如果文件名不包含“CH”,则不应添加此“pg”。
答案 0 :(得分:1)
@echo off
setlocal disableDelayedExpansion
for %%F in (*_ch??_???-???.pdf) do (
set "name=%%F"
setlocal enableDelayedExpansion
ren "!name!" "!name:~0,-11!pg!name:~-11!"
endlocal
)
在循环内打开和关闭延迟扩展,以保护文件名中可能存在的任何!
(不太可能,但可能)。
重命名的文件与FOR循环中的文件掩码不匹配,因此不存在重命名文件两次的风险。
但是如果给出新名称可以匹配FOR文件掩码的情况,那么单次运行可以将文件重命名两次。在这种情况下,FOR循环必须更改为FOR / F处理DIR / B命令。