Удалить папки в каталоге по условию
Добрый день! появилась нужда удалять большое количество папок по условию.
Дана начальная директория "All". в ней находятся множество папок. нужно пройти все эти папки, и если в какой то из них НЕТ файла 1.тхт, то удалить эту папку, и перейти к следующей и так до конца каталога "All".
Благодарю за решение!
|
DJ Mogarych |
27-09-2019 13:40 2889823 |
Цитата:
Цитата fb2boook
в ней находятся множество папок. нужно пройти все эти папки »
|
Они находятся непосредственно в All, на одном уровне?
Powershell:
Код:
gci D:\temp\All -Directory |% {
if (!(test-path "$($_.fullname)\1.txt")) {
Remove-Item "$($_.fullname)" -Recurse -force -confirm:$false
}
}
|
Код:
@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 надо убрать
|
Парни благодарю! дельное решение, прям гора с плеч )
|
Цитата:
Цитата Из PM
Дана начальная директория "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 надо убрать
|
Время: 06:51.
© OSzone.net 2001-