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

我是直接看文件个数判断总位数的,如果你数字从1开始不间断的可以这样试试
  1. <# :
  2. @echo off
  3. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0' |Out-String|Invoke-Expression"
  4. pause
  5. #>
  6. $file=dir *.pdf
  7. $n=([string]$file.Length).Length
  8. $file|%{ren $_ ([regex]::Replace($_.name,'(?<=_)\d+',{param([string]$a) "{0:d${n}}" -f [int]$a}))}
复制代码

TOP

如果数字不连续或者不是从1开始  这样试试
  1. <# :
  2. @echo off
  3. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0' |Out-String|Invoke-Expression"
  4. pause
  5. #>
  6. $file=dir *.pdf
  7. $max=($file|%{[int]$_.BaseName.split("_")[1]}|Measure-Object -Maximum).Maximum
  8. $n=([string]$max).Length
  9. $file|%{ren $_ ([regex]::Replace($_.name,'(?<=_)\d+',{param([string]$a) "{0:d${n}}" -f [int]$a}))}
复制代码

TOP

返回列表