Board logo

标题: [文件操作] BAT怎样批量修改PDF文件名? [打印本页]

作者: cnstal    时间: 2013-10-31 15:57     标题: BAT怎样批量修改PDF文件名?

现在一个文件夹下保存有很多PDF文档,命名还是比较有规律的,如下:
M97-S-3-1_0.pdf
M97-S-3-2_0.pdf
M97-S-3-3_0.pdf
......
M97-S-3-99_0.pdf
M97-S-3-100_0.pdf
M97-S-3-101_0.pdf
......
M97-S-3-9999_0.pdf
现在希望文件名中的1,2,3,...,99,100,101,.....,9999流水号,都强制以4位数显示,即显示为0001,0002,0003,...,0099,0100,....
结果希望是:
M97-S-3-0001_0.pdf
M97-S-3-0002_0.pdf
...
M97-S-3-0099_0.pdf
M97-S-3-0100_0.pdf
...
M97-S-3-9999_0.pdf
作者: apang    时间: 2013-10-31 16:18

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /a-d /b M97-S-3-*.pdf') do (
  3.     set "Name=%%a"
  4.     for /f "delims=_" %%b in ("!Name:*M97-S-3-=!") do (
  5.         set "v=0000%%b"
  6.     )
  7.     Ren "!Name!" "M97-S-3-!v:~-4!_0.PDF"
  8. )
  9. pause
复制代码

作者: cnstal    时间: 2013-10-31 16:56

apang 发表于 2013-10-31 16:18



    谢谢回复,不过好像不行啊
作者: apang    时间: 2013-10-31 17:48

回复 3# cnstal


    "不行" 是个什么状况?
作者: terse    时间: 2013-10-31 18:00

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /b M97-S-3-*.pdf') do (
  3.     for /f "tokens=1-4* delims=-_" %%a in ("%%i") do (
  4.         set "s=000%%d"
  5.         Ren "%%i" "%%a-%%b-%%c-!s:~-4!_%%e"
  6.     )
  7. )
  8. pause
复制代码

作者: cnstal    时间: 2013-10-31 20:14

terse 发表于 2013-10-31 18:00



    万分感谢,解决了!!!
作者: hzcxdgioa    时间: 2013-11-28 23:40

谢谢lz分享。。。。。。。。。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2