[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 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

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

TOP

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



    万分感谢,解决了!!!

TOP

  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
复制代码

TOP

回复 3# cnstal


    "不行" 是个什么状况?

TOP

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



    谢谢回复,不过好像不行啊

TOP

  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
复制代码

TOP

返回列表