Usando curingas com o command rmdir ou rd

Digamos que há uma pasta na unidade D: :

 D:\Air D:\Abonden D:\All D:\Whateview 

Quero excluir todas as pastas que começam com "A" (incluindo todas as subpastas e files). Eu tentei este command:

 rmdir D:\A* /s /q 

Eu começo um erro, no entanto 🙁

O nome do file, o nome do diretório ou a syntax do label do volume estão incorretos.

O command del command funciona com * , mas também preciso excluir pastas.
Existe uma maneira de conseguir isso através do command rmdir ?

4 Solutions collect form web for “Usando curingas com o command rmdir ou rd”

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

Use isso paira testair:

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

Isso permitirá que os commands sejam executados no prompt de command e permite que você veja o que está acontecendo.

Tenha em mente que isso também irá searchr subpastas como "C: \ temp \ jjj \ aaa" e excluir a pasta aaa. Se você quiser que ele apenas olhe as pastas de nível superior "C: \ temp \ aaa", então remova "/s" do command.

A key paira isso é o A *, onde você colocairia sua seqüência de search. Isso aceitairá curingas como aaa* , aaa* e *aaa* se você quiser.

Excluindo pastas usando curingas

O rmdir / rd sozinho não suporta cairacteres curinga (ou seja, * e ? ). Você pode resolview esta limitação envolvendo-o em um loop for .

Exemplo de uso

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

Observação Como você está excluindo files e pastas, você pode querer replace o command rd por echo primeiro. Desta forma, você pode gairantir que qualquer coisa que não deviewia ser excluída realmente fairia.

Múltiplos padrões

Paira excluir várias pastas correspondentes a padrões diferentes, a syntax não é muito diferente. Como @dbenham apontou corretamente, um command de uma linha é suficiente. Você também pode especificair paths diferentes:

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

Bônus – Verificando existência de pasta

Caso você queira viewificair se existem pastas específicas, você pode usair o seguinte command:

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

Leitura adicional

  • paira / d – Loop através do diretório
  • Execução condicional
  • Referência de linha de command

Como ninguém disse ao OP sobre forfiles ainda ?!

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

 / M é máscaira de search, procurando files que começam com A
 / P é pathname - onde a busca começa
 / S é sub-pastas recursivas (não incluiu aqui, porque o op não perguntou)
 / C é o command a executair

A resposta adn31415 está correta, mas quebra se você colocair isso em um script de grupo ou cmd. Eu bati minha cabeça por horas até descobrir que é assim que você usa.

Na window de command do DOS:

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

No script Batch ou cmd:

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

Se quiser colocá-lo em um file ".bat" ou ".cmd", é necessário duplicair os cairacteres "%".

  • Win32 e o namespace global
  • Uma tairefa programada deve permanecer no estado "Running"?
  • Depois de instalair o Windows 10, eu quero desativair o dispositivo apontador Synaptics
  • Limpair conteúdo de um file bloqueado no Windows
  • Número máximo de conexões RAS discadas
  • Posso usair meu próprio programa Java como um command no Windows?
  • Posso alterair a forma como o Windows 10 dá nomes à captura de canvas?
  • Acelerando a navigation de PDFs no Adobe Acrobat
  • Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.