|
|
发表于 2024-2-1 14:15:59
|
显示全部楼层
本帖最后由 aloha20200628 于 2024-2-1 19:20 编辑
回复 21# qd2024
增加一个子过程/函数 cutP 用于截取文件名首部小数点后两个目标字段,以小数点后序号为准匹配最大长度。
- @echo off &setlocal enabledelayedexpansion
- dir /b/s/a-d "%~1\*.mp4">0.0 & (call :getMax 0.0 m)
- (endlocal & set "max=%m%") & setlocal enabledelayedexpansion
- for /L %%n in (1,1,%max%) do set "p=0!p!"
- for /f "delims=" %%F in (0.0) do (
- set "xF=%%~xF" & for /f "tokens=1-2 delims=." %%1 in ("%%~nF") do (
- (call :cutP "%%~2" %max% s1 s2) & set "q=!p!!s1!" & ren "%%~F" "!q:~-%max%!!s2!!xF!")
- )
- del 0.0 & endlocal & exit/b
- :getMax // %1=listF %2=digits
- :[loop]
- set/a "k+=1" & set "n=!n![0-9]" & findstr "\.!n![^0-9]" "%~1">nul && goto[loop] || (set/a "%~2=k" & exit/b)
- :cutP // %1=nameF %2=max %3=s1 %4=s2
- (set "s=%~1" & for /L %%n in (%~2,-1,0) do if "!s:~%%n,1!" geq "0" if "!s:~%%n,1!" leq "9" (
- set/a "k=%%n+1" & for %%k in (!k!) do (set "%~3=!s:~,%%k!" & set "%~4=!s:~%%k!") & exit/b))
- exit/b
复制代码 |
|