如何修改批处理删除脚本:保留最新文件夹并排除指定logs文件夹
没问题,我帮你调整这个批处理脚本,让它跳过C:\orbis32\logs文件夹,只删除除最新文件夹和logs之外的其他目录。
修改后的完整脚本
@echo off setlocal set "workdir=C:\orbis32\" set "folder=" :: 定位到最新修改的文件夹 for /f "tokens=* delims=" %%i in ('dir %workdir% /AD /B /TW /O-D') do ( set "folder=%%~fi" goto :break ) :break echo 最新保留的文件夹... %folder% :: 遍历剩余文件夹,排除logs后执行删除(先测试再实际删除) for /f "skip=1 tokens=* delims=" %%i in ('dir %workdir% /AD /B /TW /O-D') do ( :: 判断当前文件夹是否为logs,不区分大小写 if /i not "%%~nxi"=="logs" ( echo 准备删除: rd /s /q "%%~fi" :: 测试确认无误后,删除上面的echo,启用下面的实际删除命令 :: rd /s /q "%%~fi" ) else ( echo 已跳过排除文件夹: %%~fi ) ) pause
关键修改说明
- 新增了
if /i not "%%~nxi"=="logs"判断:/i确保不区分大小写(比如Logs、LOGS也会被排除),%%~nxi提取当前遍历到的文件夹名称,和logs比对,匹配就跳过删除操作 - 保留了
echo前缀让你先做测试:运行脚本时会显示将要删除的目录,确认没有误删目标后,再把echo去掉,启用真正的rd /s /q删除命令 - 增加了跳过提示,方便你直观看到哪些文件夹被排除了
内容的提问来源于stack exchange,提问作者den.od
相关产品推荐
相关产品推荐

