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

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

Ответ 1

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

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

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

Это удаляет RECURSIVELY по вашему запросу (я имею в виду, что он проходит через все папки и подпапки).

Ответ 2

Как насчет:

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

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

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

Ответ 3

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

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

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

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

Ответ 4

rm -rf - "Название каталога"

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

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

Ответ 5

FOR /F "tokens=*" %i IN ('DIR **[[SearchTerm]]** /A:D /s /b') do rd /S / Q %i