Мне нужно написать команду в .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