Войти

Показать полную графическую версию : Проверка наличия папки и ее последующее удаление


Sisin
26-09-2017, 13:49
Подскажите, пожалуйста, как написать пакетный файл следующего содержания:
начало
проверка наличия нескольких папок
если папки есть, то удалить их и идти в начало
если папок нет, то идти в конец
конец

Iska
26-09-2017, 13:58
Sisin, не вижу тут цикла.

Sisin
26-09-2017, 14:20
не вижу тут цикла. »
Теперь точно нет)))


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

Iska
27-09-2017, 05:54
Пояснение: В папках файлы, которые могут быть заняты процессами, но вот-вот освободятся. Папки должны быть удалены. »
Тогда надо не изобретать велосипед. Надо проверять наличие процесса перед удалением, выдавать запрос пользователю и ожидать его завершения. Бегать по кругу в цикле не есть хорошо и правильно — каталог может не удаляться по многим причинам.

Sisin
27-09-2017, 11:42
каталог может не удаляться по многим причинам. »

В моем случае причина одна: приложение закрывается неопределенное время "по многим причинам")))




© OSzone.net 2001-2012