Использование подстановочных знаков с помощью команды rmdir или rd

Предположим, что есть папка в диске D: :

 D:\Air D:\Abonden D:\All D:\Whatever 

Я хочу удалить все папки, начиная с «A» (включая все подпапки и файлы). Я пробовал эту команду:

  • Как предотвратить закрытие командной строки после выполнения?
  • Как переименовать кучу файлов в командной строке?
  • Dash или Slash в пакетном файле?
  • Как отключить вывод 7-Zip?
  • Пакетное изменение размера изображений JPEG до фиксированного размера файла
  • Какое свободное программное обеспечение можно использовать для сканирования сканированных изображений
  •  rmdir D:\A* /s /q 

    Я получаю сообщение об ошибке, хотя 🙁

    Неверное имя файла, имя каталога или тома.

    Команда del работает с * , но мне также нужно удалить папки.
    Есть ли способ достичь этого с помощью команды rmdir ?

  • Можете ли вы запускать ТОЛЬКО Windows на Mac?
  • Есть ли способ удалить запрещенные разрешения из группы для папки, если у меня нет доступа?
  • Как сжать файлы VHD Windows 7 XP Mode?
  • Перемещение файлов из нескольких папок в родительский каталог с помощью командной строки
  • Как восстановить удаленные файлы?
  • Почему IE9 показывает только черную страницу?
  • 4 Solutions collect form web for “Использование подстановочных знаков с помощью команды rmdir или rd”

     cd c:\temp for /f %i in ('dir /a:d /s /b A*') do rd /s /q %i 

    Используйте это, чтобы проверить:

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

    Это вытолкнет команды, которые будут запущены в командной строке, и позволит вам увидеть, что происходит.

    Имейте в виду, что это также будет искать подпапки, такие как «C: \ temp \ jjj \ aaa», и удалит папку aaa. Если вы хотите, чтобы он просто смотрел папки верхнего уровня «C: \ temp \ aaa», затем удалите "/s" из этой команды.

    Ключом к этому является A *, где вы должны ввести строку поиска. Это позволит использовать подстановочные знаки, такие как aaa* , aaa* и *aaa* если вы этого хотите.

    Удаление папок с помощью подстановочных знаков

    Команда rmdir / rd сама по себе не поддерживает подстановочные знаки (то есть * и ? ). Вы можете обойти это ограничение, обернув его в цикл for .

    Пример использования

     for /d %G in ("X:\A*") do rd /s /q "%~G" 

    Примечание. При удалении файлов и папок вы можете сначала заменить команду rd echo . Таким образом вы можете гарантировать, что все, что не должно быть удалено, на самом деле было бы.

    Несколько шаблонов

    Чтобы удалить несколько папок, соответствующих различным шаблонам, синтаксис не слишком отличается. Как правильно указал @dbenham, достаточно однострочной команды. Вы также можете указать разные пути:

     for /d %G in ("X:\A*","Y:\Whatever\B*","Z:\C?D") do rd /s /q "%~G" 

    Бонус – проверка наличия папки

    Если вы хотите проверить, существуют ли определенные папки, вы можете использовать следующую команду:

     dir /b /a:d "X:\A*" >nul 2>&1 && echo Folders exist. || echo No folders found. 

    дальнейшее чтение

    • For / d – Переключение по каталогу
    • Условное исполнение
    • Справочник по командной строке

    Как никто еще не рассказывал OP о фазах?

    forfiles /PD:\ /MA* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"

     / M - маска поиска, ища файлы, начинающиеся с A
     / P - это путь - где начинается поиск
     / S - это рекурсивные подпапки (сюда не включалось, потому что op не спрашивал)
     / C - команда для выполнения
    

    Ответ adn31415 правильный, но ломается, если вы помещаете это в пакетный или cmd-скрипт. Я ударил головой в течение нескольких часов, пока не понял, как вы его используете.

    В окне командной строки DOS:

     for /d %G in ("X:\A*") do rd /s /q "%~G" 

    В сценарии Batch или cmd:

     for /d %%G in ("X:\A*") do rd /s /q "%%~G" 

    Если вы хотите поместить его в файл «.bat» или «.cmd», вам нужно удвоить символы «%».

    Давайте будем гением компьютера.