批处理脚本,用于删除除最新文件夹以外的所有文件夹并忽略一个特定文件夹

时间:2018-05-14 11:38:13

标签: batch-file

@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 newest... %folder%

for /f "skip=1 tokens=* delims=" %%i in ('dir %workdir% /AD /B /TW /O-D') do   (
    echo rd /s /q "%%~fi"
)

pause

现在我需要从中排除一个特定的文件夹(orbis32 \ logs)但我目前卡住了

1 个答案:

答案 0 :(得分:0)

无需先找到最新的文件夹(顺便说一句:它可能是logs文件夹) - skip就足够了。只需从obis32\logs命令中过滤出dir行:

@echo off
setlocal

set "workdir=C:\orbis32\"
set "folder="
for /f "skip=1 delims=" %%i in ('dir %workdir% /AD /B /TW /O-D ^|find /i /v "orbis32\logs"') do (
    echo rd /s /q "%%~fi"
)
pause