[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 aloha20200628 于 2023-11-22 14:38 编辑


根据路径串联的原则,排除与指定路径无串联关系的所有旁支路径...
调用findstr是为保全 *bat-bak\* 的子文件夹
脚本代码设定初始文件夹为 d:\test\temp
当前脚本为验证版本,若验证结果无误,可删除第11行前缀 'REM 实用版本》',再删除9-10行,改为实用版本。
  1. @echo off &setlocal enabledelayedexpansion
  2. cd /d "d:\temp\tmp"
  3. for /f "delims=" %%d in ('dir/b/s/ad *bat-bak') do (set/a "n+=1" &set _!n!=%%d)
  4. for /f "delims=" %%d in ('dir/b/s/ad^|findstr /ivc:"bat-bak" ') do (
  5. set "keep=0" &for /L %%i in (1,1,!n!) do (
  6. set "_d=!_%%i!"
  7. if /i "!_d:%%d=!" neq "!_d!" (set "keep=1")
  8. )
  9. REM 验证版本
  10. if !keep! equ 0 (echo,删除》%%d) else (echo,保留》%%d)
  11. REM 实用版本》if !keep! equ 0 (rd /s/q "%%d"2>nul)
  12. )
  13. endlocal&exit/b
复制代码

TOP

返回列表