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

0

Eu quero excluir vários subdiretórios do mesmo diretório. Os diretórios têm "tmp" como os três primeiros caracteres em seu nome. Isso não está funcionando:

C:\Documents and Settings\rajesh\Local Settings\Temp> rmdir tmp*
    
por HOLYBIBLETHE 20.12.2013 / 09:39

2 respostas

3

O comando rmdir não aceita curingas. Você pode usar um pouco de for loop para atingir o mesmo objetivo. Isso executará o comando rmdir várias vezes - uma vez para cada arquivo / pasta que corresponder ao padrão fornecido:

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

  • Observe se as pastas não estão vazias e você deseja recorrer a elas. É necessário adicionar /S no final.
  • Se você quiser impedir a confirmação, adicione /Q também.
  • Se você quiser evitar a impressão do comando para cada linha, adicione @ antes do comando.

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 /? .

    
por 20.12.2013 / 12:23
0

uma boa maneira geral segura é fazer um arquivo dos diretórios que você deseja excluir dir /ad > blah Em seguida, verifique se o arquivo tem o que você deseja e, em seguida, faça um comando para que echo cada linha do arquivo. for /f %a in (blah) do @echo %a , em seguida, o corrige 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 disso para adicionar / q / s ao rmdir% a já existente, ou seja, use @echo rmdir% a / q / s. E então, uma vez bem com quais comandos ele estaria rodando, remova a parte do eco assim for /f %a in (blah) do @rmdir %a /q /s

outra maneira também é utilizar 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 blah. sed "s/.*/rmdir type f \/q\/s/" blah >f %code% vê todos os comandos. para excluir cada subdiretório. se você está feliz com isso, você pode renomeá-lo para f.bat e executá-lo.

    
por 20.12.2013 / 12:33