Как исключить папку (добавить условное) в цикле командной строки Windows?

#windows #batch-file #command-line

Вопрос:

Я убегаю Win10 . У меня есть следующее в файле командной строки Windows bat , и он отлично работает, удаляя все bin папки (рекурсивно) в определенном дереве папок:

 FOR /d /r . %%d IN (bin) DO @IF EXIST "%%d" rd /s /q "%%d"
 

Но теперь есть 1 bin папка, которую необходимо исключить из удаления. Предположим, что его родительская папка имеет имя XYZ . Как я мог бы запустить тот же цикл, но исключить удаление bin имени родительской bin папки, которую я хочу исключить XYZ ?

Комментарии:

1. Непроверенные: FOR /F "delims=" %%G IN ('dir /ad /b /s ^|findstr /ELIC:"bin" ^|findstr /ELIVC:"xyzbin"') DO rd /s /q "%%G"

2. for /D /R %%d in (bin) do if exist "%%~d" for /D %%p in ("%%~DPd.") do if /I not "%%~NXp"=="xyz" do rd /S /Q "%%~d" ?

3. Сквашмен: твой сработал идеально. Спасибо. Можете ли вы опубликовать это в качестве ответа? aschipfl: ваш ничего не удаляет.