2

Как я могу удалить из командной строки все папки и подпапки, содержащие в своем имени SQ00 ?

2 ответа2

9

Сначала перейдите по пути, по которому вы хотите начать поиск / удаление.

cd c:\temp

Затем введите следующее:

for /f %i in ('dir /a:d /s /b *sq00*') do echo rd /s /q %i

Когда вы видите вывод и вам удобно, он удаляет папки, которые вы видите, вы можете удалить эхо и фактически выполнить команду следующим образом:

for /f %i in ('dir /a:d /s /b *sq00*') do rd /s /q %i

dir /a:d /s /b *sq00* просматривает дерево каталогов, в котором вы создали команду (текущий каталог!) и все подпапки, соответствующие папкам, включая строку sq00. /a:d означает, что он ищет только каталоги, /s означает, что он выглядит рекурсивно, /b означает "чистый" формат, исключая заголовки /etc.

Для каждого результата, который он находит с помощью dir, он помещает его в переменную %i а затем запускает команду rd /s /q %i . rd удаляет папку (сокращение от rmdir), а flags /s означает, что она удаляет папку и все подпапки, и, наконец, /q означает, что она тихая и не будет задавать никаких вопросов.

2

Использование утилиты SFUA:

Это можно сделать с помощью команды find , входящей в состав служебного инструментария Microsoft SFUA , который работает в подсистеме для приложений на основе Unix:

find . -type d -name '*sq00*'|xargs rm -r --
Конечно, это удаляет все подкаталоги *sq00* .

Использование программного обеспечения JP TCC/LE:

Это простое упражнение в использовании обычной команды for для поиска каталогов, соответствующих имени, и команды del для удаления их содержимого:

for /r /d %dir in (*sq00*) do del /s/x %dir\*
Отключение запроса, не удаление вложенных папок из найденных папок, включая системные и скрытые файлы, или выбор, удалять ли их в корзину, - все это упражнения в различных параметрах (например, /y ) для команды del .

Использование интерпретатора команд Microsoft:

Как и в ответе Маттиаса Анберга.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .