我写了一个脚本来删除父文件夹中的所有文本文件和文件夹。但是在该父文件夹中,我不想删除特定的子文件夹以及具有相同命名约定的最新 2 个文件夹和文本文件。
但是当我执行脚本时,父文件夹的所有文件夹和文本文件都被删除了。
预期:不会从父文件夹和子文件夹中删除最新的 2 个文件夹和文本文件。
@echo off & setlocal EnableExtensions DisableDelayedExpansion
set "_ROOT=Parent Folder"
set "_EXCEPT=Sub Folder"
for /F "skip=2 delims=" %%D in ('
dir /s /B /ad-h /o-d "%_ROOT%\*" ^| sort /R
') do (
set "PDIR=%%~D\"
setlocal EnableDelayedExpansion
if /I "!PDIR:\%_EXCEPT%\=!"=="!PDIR!" (
del /Q "!PDIR!*.*"
rd "!PDIR!." 2> nul
Del "%%D"*.txt
)
endlocal
)
pause