[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. set /p n=保留数量:
  3. setlocal enabledelayedexpansion
  4. for /f "delims=" %%i in ('dir /b /s /a-d ^|find /v "%~0"') do (
  5. for /f "tokens=1-3 delims=." %%a in ("%%~nxi") do (
  6. set m=00000%%c
  7. if "%%c" equ "" (
  8. set "#!m:~-5!#%%~nxi.0=%%i"
  9. ) else (
  10. set "#!m:~-5!#%%~nxi=%%i"
  11. )
  12. )
  13. )
  14. for /f "tokens=1-4* delims=#=." %%a in ('set # ^|sort /r') do (
  15. if defined _"%%b.%%c" (
  16. set m=!_"%%b.%%c"!
  17. set /a m+=1
  18. set _"%%b.%%c"=!m!
  19. ) else set _"%%b.%%c"=1
  20. if !_"%%b.%%c"! gtr %n% (
  21. rem 显示正确则去掉 echo 再执行
  22. echo del "%%e"
  23. )
  24. )
  25. endlocal
  26. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 3# 阿一呐法


   存在大量重名文件吧?是需要每个文件夹单独保留?
bat小白,请多指教!谢谢!

TOP

回复 5# 阿一呐法


  
  1. @echo off
  2. set /p n=保留数量:
  3. for %%x in (.) do call :1 "%%~fx"
  4. for /r /d %%y in (*) do call :1 "%%~fy"
  5. pause
  6. exit
  7. :1
  8. pushd "%~1"
  9. echo 正在处理 "%~1"
  10. setlocal enabledelayedexpansion
  11. for /f "delims=" %%i in ('dir /b /a-d ^|find /v "%~nx0"') do (
  12. for /f "tokens=1-3 delims=." %%a in ("%%~nxi") do (
  13. set m=00000%%c
  14. if "%%c" equ "" (
  15. set "#!m:~-5!#%%~nxi.0=%%i"
  16. ) else (
  17. set "#!m:~-5!#%%~nxi=%%i"
  18. )
  19. )
  20. )
  21. for /f "tokens=1-4* delims=#=." %%a in ('set # ^|sort /r') do (
  22. if defined _"%%b.%%c" (
  23. set m=!_"%%b.%%c"!
  24. set /a m+=1
  25. set _"%%b.%%c"=!m!
  26. ) else set _"%%b.%%c"=1
  27. if !_"%%b.%%c"! gtr %n% (
  28. rem 显示正确则去掉 echo 再执行
  29. echo del "%%e"
  30. )
  31. )
  32. endlocal
  33. popd
  34. exit /b
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表