批处理文件 - 递归查找编号最高的文件并重命名

时间:2014-01-24 18:59:17

标签: batch-file batch-rename

我从这里获取脚本以找到编号最大的文件 - Choose Highest Numbered File - Batch File

@echo off
setlocal enabledelayedexpansion
set max=0
for %%x in (*-*.png) do (
  set "FN=%%~nx"
  set "FN=!FN:*-=!"
  if !FN! GTR !max! set max=!FN!
)

棘手的部分是我有许多包含编号文件的文件夹:

folderA/fileA-01.png
folderA/fileA-02.png
folderA/fileA-03.png
folderA/fileA-04.png

folderB/fileB-01.png
folderB/fileB-02.png
folderB/fileB-03.png
folderB/fileB-04.png
folderB/fileB-05.png

我想将每个文件夹中每个编号最高的文件重命名为fileA-max.png和fileB-max.png - 即使用“max”而不是最高编号。

我不经常做批处理文件,当我这样做时,通常是非常基本和简单的东西,所以如果可以的话 - 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

@echo off &setlocal disableDelayedExpansion
for /d %%a in (*) do (
    for /f "tokens=1*delims=-:" %%b in ('dir /b /a-d /o-n "%%~a"^|findstr /n $') do if %%b==1 (
        for /f "delims=-" %%d in ("%%~nc") do echo(ren "%%~a\%%~c" "%%~d-max%%~xc"
    )
)
相关问题