Показать полную графическую версию : Проверка наличия папки и ее последующее удаление
Подскажите, пожалуйста, как написать пакетный файл следующего содержания:
начало
проверка наличия нескольких папок
если папки есть, то удалить их и идти в начало
если папок нет, то идти в конец
конец
Sisin, не вижу тут цикла.
не вижу тут цикла. »
Теперь точно нет)))
1. Где расположены папки? Это несколько подпапок в одной папке, или пути произвольны? Они могут быть вложены по заранее неизвестному пути или путь четко задан?
2. Несколько - это сколько? От и до?
3. Удалять при условии, что все папки найдены, или, если хотя бы одна отсутствует, ничего не делать (конец цикла)? »
1.Пути произвольны.
2.До 10
3.Надо добиться, чтобы папки были удалены.
Пояснение: В папках файлы, которые могут быть заняты процессами, но вот-вот освободятся. Папки должны быть удалены. Если делать обычной командой удаления директории, то есть вероятность, что если файл в папке занят процессом, то соответственно папка не удалится. Для этого надо проверить наличие папки.
megaloman
26-09-2017, 19:35
@Echo Off
cls
:Begin
Set /A Repeat=0
Call :TryRD "Z:\In\Box_In\111"
Call :TryRD "Z:\In\Box_In\123 любой набор символов\любой набор символов\Soft_In\папка 1"
Call :TryRD "Z:\In\Box_In\123 любой набор символов\любой набор символов\Soft_In\папка 2"
If %Repeat% GTR 0 GoTo :Begin
GoTo :Eof
:TryRD
If Exist %1 (Rd /S /Q %1 2>nul ||Call Set /A Repeat+=1)
GoTo :Eof
Пояснение: В папках файлы, которые могут быть заняты процессами, но вот-вот освободятся. Папки должны быть удалены. »
Тогда надо не изобретать велосипед. Надо проверять наличие процесса перед удалением, выдавать запрос пользователю и ожидать его завершения. Бегать по кругу в цикле не есть хорошо и правильно — каталог может не удаляться по многим причинам.
каталог может не удаляться по многим причинам. »
В моем случае причина одна: приложение закрывается неопределенное время "по многим причинам")))
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.