标题: [文件操作] 【已解决】批处理如何根据数字顺序依次更改文件名为字母顺序? [打印本页]
作者: for_flr 时间: 2021-10-13 15:01 标题: 【已解决】批处理如何根据数字顺序依次更改文件名为字母顺序?
本帖最后由 for_flr 于 2021-10-14 09:51 编辑
一个文件夹为5TY,有多个子文件夹,每个文件夹里有数量不等的文件,但每个文件夹里的文件的文件名都是按数字排序。
如5TY文件夹里有abc、abd、abe、abf等不定数量的文件夹
abc文件夹里有001、002、003、004等按数字排序的8个文件,abd文件夹里有001、002、003、004等按数字排序的11个文件,abe文件夹里有001、002、003、004等按数字排序的17个文件,abf文件夹里有001、002、003、004等按数字排序的13个文件。
需要取文件名的后两位依次加abcd,如001文件改名为01a、002为02b、003为03c、004为04d,
005~007不更改文件名
数字顺序最后一个(abd文件夹里的011、abe文件夹里的017)文件改名为后两位数字+aa,倒数第二个(abd文件夹里的010、abe文件夹里的016)文件改名为后两位数字+ab,以此类推+ac,+ad,直到007文件不改名。
怎样用CMD实现快速批量改名(文件夹、文件扩展名都不改)
谢谢。
作者: taofan712 时间: 2021-10-13 15:46
- @echo off
- setlocal enabledelayedexpansion
- set "a=abcdefghijklmnopqrstuvwxyz"
- set "b=dcba"
- for /f "delims=" %%i in ('dir /b /ad') do (
- pushd %%i
- echo;处理%%i文件夹内容:
- set /a n=0
- for /f "delims=" %%a in ('dir /a-d /o-n /b') do (
- set fn=%%~na
- set fn=!fn:~-2!
- if %%~na gtr 007 call :cut %a%&echo;!fn!a!fa!
- if %%~na lss 005 call :cut %b%&echo;!fn!!fa!
- if %%~na gtr 004 if %%~na lss 008 echo %%~na&set/a n=0
- )
- echo;————%%i文件夹处理完毕!&echo;&echo;
- popd
- )
- pause
- exit /b
- :cut
- set fa=%~1
- set fa=!fa:~%n%,1!
- set /a n+=1
复制代码
假设子文件夹里的文件不超过26个...
作者: qixiaobin0715 时间: 2021-10-13 23:04
本帖最后由 qixiaobin0715 于 2021-10-13 23:33 编辑
- @echo off
- set Letters=1abcdefghijklmnopqrstuvwxyz
- setlocal enabledelayedexpansion
- for /l %%a in (1,1,26) do set #%%a=!Letters:~%%a,1!
- for /d %%i in (*) do (
- set m=0
- set n=5
- for /f "delims=" %%j in ('dir /b /a-d /o-n "%%i\*.*"') do (
- set str=%%~nj
- set str=!str:~1!
- if "!str!" geq "08" (
- set /a m+=1
- for %%x in (#!m!) do ren "%%j" "!str!a!%%x!%%~xj"
- ) else if "!str!" leq "04" (
- set /a n-=1
- for %%y in (#!n!) do ren "%%j" "!str!!%%y!%%~xj"
- )
- )
- )
- pause
复制代码
作者: for_flr 时间: 2021-10-14 09:50
谢谢两位,都可以完成任务。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |