Рекурсивно удалить все папки, начиная с - PullRequest
11 голосов
/ 27 ноября 2009

Мне нужно написать команду в файл .bat, который рекурсивно удаляет все папки, начиная с определенной строки. Как мне этого добиться?

Ответы [ 5 ]

42 голосов
/ 13 мая 2010

Это полный ответ, который вы ищете:

FOR /D /R %%X IN (certain_string*) DO RD /S /Q "%%X"

где, очевидно, вам нужно заменить certain_string на строку, с которой начинаются ваши папки.

Это удаляет РЕКУРСИВНО как вы и просили (я имею в виду, что оно проходит через все папки и подпапки).

4 голосов
/ 27 ноября 2009

Как насчет:

for /d %a in (certain_string*) do rd /s %a

Это будет работать из командной строки. Внутри пакетного файла вы должны удвоить % с, как обычно:

@echo off
for /d %%a in (certain_string*) do rd /s %%a
1 голос
/ 27 ноября 2009

Незакончено, я думаю. Если вы имели в виду «Рекурсивно идти по иерархии каталогов, чтобы удалить все папки, начинающиеся с определенной строки», то может быть достаточно следующего:

for /f "delims=" %%x in ('dir /b /ad abc*') do rd /s /q "%%x"

Это вернется в дерево каталогов, найдя все папки, начинающиеся с «abc», перебрав этот список и удалив каждую папку.

Возможно, вам нужно обернуть if exist вокруг rd в зависимости от порядка, в котором каталоги найдены и возвращены. В общем, перебор чего-либо и одновременное его изменение редко бывают полезными, но иногда это работает: -)

0 голосов
/ 14 июля 2015

rm -rf - "Имя каталога"

Пример: rm -rf - "-2096378"

Приведенная выше команда удаляет папки / каталоги, начинающиеся с - или символы подстановки

0 голосов
/ 10 апреля 2015
FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...