Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Проверка наличия папки и ее последующее удаление (http://forum.oszone.net/showthread.php?t=330075)

Sisin 26-09-2017 13:49 2767038

Проверка наличия папки и ее последующее удаление
 
Подскажите, пожалуйста, как написать пакетный файл следующего содержания:
Код:

начало
проверка наличия нескольких папок
если папки есть, то удалить их и идти в начало
если папок нет, то идти в конец
конец


Iska 26-09-2017 13:58 2767040

Sisin, не вижу тут цикла.

Sisin 26-09-2017 14:20 2767043

Цитата:

Цитата Iska
не вижу тут цикла. »

Теперь точно нет)))

Цитата:

Цитата megaloman
1. Где расположены папки? Это несколько подпапок в одной папке, или пути произвольны? Они могут быть вложены по заранее неизвестному пути или путь четко задан?
2. Несколько - это сколько? От и до?
3. Удалять при условии, что все папки найдены, или, если хотя бы одна отсутствует, ничего не делать (конец цикла)? »

1.Пути произвольны.
2.До 10
3.Надо добиться, чтобы папки были удалены.

Пояснение: В папках файлы, которые могут быть заняты процессами, но вот-вот освободятся. Папки должны быть удалены. Если делать обычной командой удаления директории, то есть вероятность, что если файл в папке занят процессом, то соответственно папка не удалится. Для этого надо проверить наличие папки.

megaloman 26-09-2017 19:35 2767097

Код:

@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 2767184

Цитата:

Цитата Sisin
Пояснение: В папках файлы, которые могут быть заняты процессами, но вот-вот освободятся. Папки должны быть удалены. »

Тогда надо не изобретать велосипед. Надо проверять наличие процесса перед удалением, выдавать запрос пользователю и ожидать его завершения. Бегать по кругу в цикле не есть хорошо и правильно — каталог может не удаляться по многим причинам.

Sisin 27-09-2017 11:42 2767233

Цитата:

Цитата Iska
каталог может не удаляться по многим причинам. »

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


Время: 22:52.

Время: 22:52.
© OSzone.net 2001-