Batch file 在文件名中搜索并添加文本
我需要一个批处理文件来搜索短语“Chu XX”,并在PDF文件中添加一个短语“Chu XX_Pg” 我的PDF文件名看起来像Batch file 在文件名中搜索并添加文本,batch-file,pdf,cmd,Batch File,Pdf,Cmd,我需要一个批处理文件来搜索短语“Chu XX”,并在PDF文件中添加一个短语“Chu 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-07
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”
@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命令