CMD/BAT - Проверка наличия папки и ее последующее удаление

Ответить
Аватара пользователя
Sisin

CMD/BAT - Проверка наличия папки и ее последующее удаление

Сообщение Sisin »

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



Код:

Код: Выделить всё

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

Re: CMD/BAT - Проверка наличия папки и ее последующее удаление

Сообщение Iska »

Цитата Iska:



не вижу тут цикла.
CMD/BAT - Проверка наличия папки и ее последующее удаление




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




Цитата megaloman:



1. Где расположены папки? Это несколько подпапок в одной папке, или пути произвольны? Они могут быть вложены по заранее неизвестному пути или путь четко задан?

2. Несколько - это сколько? От и до?

3. Удалять при условии, что все папки найдены, или, если хотя бы одна отсутствует, ничего не делать (конец цикла)?
»




1.Пути произвольны.

2.До 10

3.Надо добиться, чтобы папки были удалены.



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

Re: CMD/BAT - Проверка наличия папки и ее последующее удаление

Сообщение megaloman »

Код:

Код: Выделить всё

@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

Re: CMD/BAT - Проверка наличия папки и ее последующее удаление

Сообщение Iska »

Цитата Sisin:



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




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

Re: CMD/BAT - Проверка наличия папки и ее последующее удаление

Сообщение Sisin »

Цитата Iska:



каталог может не удаляться по многим причинам.
CMD/BAT - Проверка наличия папки и ее последующее удаление




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

Вернуться в «Скриптовые языки администрирования Windows»