标题: [文件操作] [分享]批处理给不同类型文件分别添加序号 [打印本页]
作者: Batcher 时间: 2022-12-13 14:18 标题: [分享]批处理给不同类型文件分别添加序号
【问题描述】
我只想给这些文件后面添加log001—log999的排序但又不打乱文件的位置
不会超过1000个文件,因为里面有三种文件,一种文件数量都是几百个
作者: Batcher 时间: 2022-12-13 14:19
【解决方案】
test_1.bat 请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- for %%a in (avi blf mf4) do (
- call :ChangeName %%a
- )
- pause
- goto :eof
-
- :ChangeName
- for /f "delims=" %%i in ('dir /b /a-d *.%1 ^| find /v /c ""') do (
- set "FileCount=%%i"
- )
- set "NumLast=1000!FileCount!"
- for /f "delims=" %%i in ('dir /b /a-d /o-n *.%1') do (
- set "NewName=%%~ni_log!NumLast:~-3!%%~xi"
- ren "%%i" "!NewName!"
- set /a "NumLast-=1"
- )
复制代码
作者: Batcher 时间: 2022-12-13 15:21
【问题描述】
百分之九十的文件数量都是配套的三个
其余的有一个或者俩个
数量不确定
【解决方案】test_2.bat 请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "SeqNum=10001"
- for /f "delims=" %%i in ('dir /b /a-d *.avi *.blf *.mf4') do (
- set "_%%~ni=%%~ni"
- )
- for /f "tokens=1* delims==" %%i in ('set _') do (
- set "NewName=%%j_log!SeqNum:~-3!"
- if exist "%%j.avi" (
- ren "%%j.avi" "!NewName!.avi"
- )
- if exist "%%j.blf" (
- ren "%%j.blf" "!NewName!.blf"
- )
- if exist "%%j.mf4" (
- ren "%%j.mf4" "!NewName!.mf4"
- )
- set /a "SeqNum+=1"
- )
- endlocal
复制代码
作者: Batcher 时间: 2022-12-13 15:52
【问题描述】
部分文件名结尾有个多余的下划线
【解决方案】- @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "SeqNum=10001"
- for /f "delims=" %%i in ('dir /b /a-d *.avi *.blf *.mf4') do (
- set "OldName=%%~ni"
- if "!OldName:~-1!" equ "_" (
- set "_!OldName:~0,-1!=!OldName:~0,-1!"
- ) else (
- set "_!OldName!=!OldName!"
- )
- )
- for /f "tokens=1* delims==" %%i in ('set _') do (
- set "NewName=%%j_log!SeqNum:~-3!"
- if exist "%%j.avi" (
- ren "%%j.avi" "!NewName!.avi"
- ) else if exist "%%j_.avi" (
- ren "%%j_.avi" "!NewName!.avi"
- )
- if exist "%%j.blf" (
- ren "%%j.blf" "!NewName!.blf"
- ) else if exist "%%j_.blf" (
- ren "%%j_.blf" "!NewName!.blf"
- )
- if exist "%%j.mf4" (
- ren "%%j.mf4" "!NewName!.mf4"
- ) else if exist "%%j_.mf4" (
- ren "%%j_.mf4" "!NewName!.mf4"
- )
- set /a "SeqNum+=1"
- )
- endlocal
复制代码
作者: yyz219 时间: 2022-12-15 10:50
【问题描述】
部分文件名结尾有个多余的下划线
【解决方案】
Batcher 发表于 2022-12-13 15:52
感谢分享
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |