Показать полную графическую версию : Удалить папки в каталоге по условию
fb2boook
27-09-2019, 11:33
Добрый день! появилась нужда удалять большое количество папок по условию.
Дана начальная директория "All". в ней находятся множество папок. нужно пройти все эти папки, и если в какой то из них НЕТ файла 1.тхт, то удалить эту папку, и перейти к следующей и так до конца каталога "All".
Благодарю за решение!
DJ Mogarych
27-09-2019, 13:40
в ней находятся множество папок. нужно пройти все эти папки »
Они находятся непосредственно в All, на одном уровне?
Powershell:
gci D:\temp\All -Directory |% {
if (!(test-path "$($_.fullname)\1.txt")) {
Remove-Item "$($_.fullname)" -Recurse -force -confirm:$false
}
}
megaloman
27-09-2019, 14:54
@Echo Off
cls
Set "BoxIn=Z:\Box_In"
Set "Ex=1.txt"
Pushd "%BoxIn%" &&FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /A:D`) DO If Not Exist "%%d\%Ex%" Echo RD /Q /S "%%d"
Popd
Pause
Exit /B 0Пропишите свой путь и имя файла, в боевом варианте Echo надо убрать
fb2boook
27-09-2019, 15:31
Парни благодарю! дельное решение, прям гора с плеч )
megaloman
03-10-2019, 10:02
Дана начальная директория "All". в ней находятся множество папок. нужно пройти все эти папки, и если в какой то из них ЕСТЬ папка 'Data', то удалить эту папку(Data), и перейти к следующей и так до конца каталога "All".
@Echo Off
Set "BoxIn=Z:\Box_In"
Set "Dname=Data."
FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /S /A:D`) DO (
If Exist "%%d\%Dname%\" Echo RD /Q /S "%%d\%Dname%\"
)
Exit /B 0 в боевом варианте Echo надо убрать
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.