
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 rmdir
comando não aceita curingas. Você pode usar um pequeno for
loop para atingir o mesmo objetivo. Isso executará o rmdir
comando 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
/S
no final. - Se você quiser evitar a verificação de confirmação, adicione
/Q
també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 %a
em 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.