Exclua vários diretórios com um prefixo comum no prompt de comando

Exclua vários diretórios com um prefixo comum no prompt de comando

Quero excluir vários subdiretórios do mesmo diretório. Os diretórios têm “tmp” como os três primeiros caracteres do nome. Isto não está a funcionar:

C:\Documents and Settings\rajesh\Local Settings\Temp> rmdir tmp*

Responder1

O rmdircomando não aceita curingas. Você pode usar um pequeno forloop para atingir o mesmo objetivo. Isso executará o rmdircomando várias vezes - uma vez para cada arquivo/pasta que corresponda ao padrão fornecido:

for /D %f in (tmp*) do rmdir "%f"

  • Observe que se as pastas não estiverem vazias e você quiser recorrer a elas, será necessário adicionar /Sno final.
  • Se você quiser evitar a verificação de confirmação, adicione /Qtambém.
  • Se você quiser evitar a impressão do comando para cada linha, adicione @antes do comando.
  • As aspas em torno de %f permitirão que pastas com espaços sejam excluídas.

Por exemplo, com todas essas opções, você teria:

for /D %f in (tmp*) do @rmdir "%f" /Q /S

Para ver o uso completo, digite rmdir /?.

Responder2

uma boa maneira geral e segura é criar um arquivo com os diretórios que você deseja excluir. dir /ad > blah Em seguida, verifique se o arquivo tem o que você deseja e, em seguida, crie um comando for que ecoe cada linha do arquivo. for /f %a in (blah) do @echo %aem seguida, altere-o para os comandos que você deseja, por exemplo, esta linha coloca rmdir no início de cada linha do arquivo for /f %a in (blah) do @echo rmdir %a ou no final dela para adicionar /q /s ao rmdir %a já existente, ou seja, use @echo rmdir %a /q /s. E então, quando estiver satisfeito com os comandos que ele estaria executando, remova a parte echo parafor /f %a in (blah) do @rmdir %a /q /s

outra maneira também é usar esse método inicial de fazer o arquivo listar os subdiretórios a serem excluídos. Assim, cada linha do arquivo pode ser alterada para ler o comando para excluir esse subdiretório. Em seguida, use sed no arquivo para substituir o subdiretório x por rmdir x /q /s.

Então, se você tiver o arquivo chamado blá. sed "s/.*/rmdir \0 \/q\/s/" blah >f type f veja que tem todos os comandos. para excluir cada subdiretório. se você estiver satisfeito com isso e quiser executá-lo, poderá renomear f para f.bat e executá-lo.

informação relacionada