Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在文件名中搜索并添加文本_Batch File_Pdf_Cmd - Fatal编程技术网

Batch file 在文件名中搜索并添加文本

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

我需要一个批处理文件来搜索短语“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-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命令