Как я могу удалить из командной строки все папки и подпапки, содержащие в своем имени SQ00
?
2 ответа
Сначала перейдите по пути, по которому вы хотите начать поиск / удаление.
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 означает, что она тихая и не будет задавать никаких вопросов.
Использование утилиты 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:
Как и в ответе Маттиаса Анберга.