【轮子】遍历子目录所有文件名并补齐位数
bat吧
全部回复
仅看楼主
level 13
网上搜了下,发现这么常用的功能居然没有轮子,只好自己造了[狂汗]
@璐村惂鐢ㄦ埛_000076K馃惥 off
setlocal enabledelayedexpansion
set /p "位数=位数:"
echo,
set /p "补位字符=补位字符:"
echo,
:Loop
cls
set /p "dirValue=拖入文件夹(最好做备份):"
echo,
echo 请稍候...
for /r %dirValue% %%f in (*.*) do (
set "fileName=%%~nf"
call :PadLeft fileName 位数 补位字符
echo "%%~nf" =^> "!fileName!%%~xf"
ren "%%f" "!fileName!%%~xf"
)
echo 完成!
pause
goto :Loop
:GetStrLen <输入字符串> <输出字符串长度>
set len=0
set "tempStr=!%~1!"
if not defined %~1 goto :eof
:getStrLen_Loop
rem len+1
set /a %~2+=1
set "tempStr=!tempStr:~0,-1!"
if defined tempStr goto :getStrLen_Loop
goto :eof
:PadLeft <操作字符串> <位数> <补位字符>
call :GetStrLen %~1 len
if !len! GEQ !%~2! goto :eof
set /a len+=1
for /l %%a in (!len! 1 !%~2!) do (
set %~1=!%~3!!%~1!
)
goto :eof
2022年07月16日 08点07分 1
level 9
set zero=00000000
setlocal enabledelayedexpansion
for %%a in (2 4 8 16 32 64 128 256 512 1024 2048) do (
set x=%zero%%%a
set x=!x:~0,8!
echo !x!
)
endlocal
2022年07月18日 05点07分 2
level 9
开头直接将填补字符补满好点,后续循环会随着时间推移消耗运算速度,量少的偏差不大
2022年07月18日 05点07分 3
1