不删除特定子文件夹并跳过从父文件夹中删除 2 个最新文件夹和文本文件的批处理脚本

问题描述 投票:0回答:0

我写了一个脚本来删除父文件夹中的所有文本文件和文件夹。但是在该父文件夹中,我不想删除特定的子文件夹以及具有相同命名约定的最新 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
batch-file directory subdirectory
© www.soinside.com 2019 - 2024. All rights reserved.