.bat for batch rename to increment numbers in fname

前端 未结 2 682
心在旅途
心在旅途 2021-01-06 16:33

I have a large folder of .cbr\'s, and I\'m renaming them by issue number to correctly order them. What do I need to include in the ren line to have each file increment the n

2条回答
  •  轮回少年
    2021-01-06 17:31

    :: REN-sec.cmd ==> Rename files to increment numbers
    :: Inspired on -> http://stackoverflow.com/questions/6322329#6324312
    :: - (cX) 2017 adolfo.dimare@gmail.com
    :: -> CAVEAT: Works on CURRENT directory!
    :: - Tested on Win10 64bits
    @echo off
    
    if (%1)==()   goto _help
    if (%1)==(/?) goto _example
    
    setLOCAL EnableDelayedExpansion
    rem            EnableExtensions
    if (%1)==(/r) goto _recursive
    if (%1)==(/R) goto _recursive
    goto _current_dir
    
    :_recursive
    for /d %%A in (*.*) do (
          cd "%%~A"
          call %~dpnx0 %1 %2 %3 %4
          rem echo returning -^> call %~dpnx0 %1 %2 %3 %4
          cd ..
    )
    shift
    goto _current_dir
    
    :_current_dir
    set /a _count=0
    for %%A in (%1) do (
        set /a _count+=1
    
        rem Execute several times to rename 'crazy' left overs...
        FOR /L %%C IN (1,1,2) DO (
            if exist "%~2!_count!%~3%%~xA" call :skip_count %1 %2 %3 %AA
            if exist "%%~A" if not exist "%~2!_count!%~3%%~xA" ren "%%~A" "%~2!_count!%~3%%~xA"
        )
        if exist "%%~A" echo EXISTS "%%~A"
        REM if not exist "%~2!_count!%~3%%~xA" echo MISSING %~2!_count!%~3%%~xA
    )
    goto _out
    
    :skip_count
        set /a _count+=1
        if exist "%~2!_count!%~3%%~x4" goto skip_count
    goto _out
    
    :_example
    echo.
    echo %0 USAGE EXAMPLE
    echo.
    echo X:\Dir\SubDir\^> dir /b
    echo etc.
    echo La La La.mp3
    echo Le Le Le.mp3
    echo Lo Lo Lo.mp3
    echo Other.txt
    echo.
    echo X:\Dir\SubDir\^> %0 *.mp3 "" " - Su Fix"
    echo.
    echo X:\Dir\SubDir\^> dir /b
    echo etc.
    echo 1 - Su Fix.mp3
    echo 2 - Su Fix.mp3
    echo 3 - Su Fix.mp3
    echo Other.txt
    echo.
    
    :_help
    echo Rename files to increment numbers
    echo.
    echo CAVEAT: Works only in CURRENT directory!
    echo.
    echo %0 [/r] *.ext [prefix] [sufix]
    echo:  /?          Help screen
    echo   /r          Recurse in directories
    echo   *.ext       Simple wildcard (like *.mp3) [NOT *.a.txt]
    echo   prefix      Prefix to rename number
    echo   sufix       sufix to rename number
    echo.
    echo When "" is used as prefix no prefix is put before the increment number
    echo.
    echo X:\Dir\SubDir\^> %0 [/r] [wildcard] [prefix] [sufix]
    goto _out
    
    :_out
    :: REN-sec.cmd ==> End of file
    

提交回复
热议问题