Quero excluir todo o conteúdo de uma pasta especificada no Windows 7 por meio de arquivo em lote. Meu problema é que 'del' ou 'apagar' exclui apenas os arquivos, não as pastas e 'rmdir' ou 'rd' sempre exclui a pasta especificada com seu conteúdo, mas eu quero excluir apenas o conteúdo, não a própria pasta . Eu tentei o comando ' rmdir /S /Q "C:\Share\*"
', que me deu um erro de sintaxe.
Qual é a maneira correta de fazer isso?
Estou trabalhando no Windows 7 Professional de 64 bits e tenho permissões de administrador.
fonte
del
não é necessário.rd/s/q
excluirá os arquivos e subpastas.del
existe principalmente para arquivos na pasta raiz, mas pode remover a opção de recursão.Você recebe um "erro de sintaxe" porque
rmdir
aceita apenas nomes completos, não curingas. (Emcmd.exe
, a expansão de curinga é deixada para os programas individuais; nem todos eles fazem.)Se você tiver muitos diretórios começando com
Share...
, use umfor
loop.fonte
Tente isso em um prompt de comando:
fonte
Sobre o quê ?
EDIT: é claro que esta solução é aplicável apenas quando você pode tolerar uma ausência momentânea de pasta.
fonte
for /f
em casos semelhantes aos meus. Só queria compartilharIsso não funciona se os subdiretórios contiverem outros diretórios que contêm espaços.
Para fazer isso funcionar, eu precisava citar a sequência final, como esta
Aparentemente, isso faz com que o comando funcione na cadeia de caracteres citada, em vez de apenas na própria cadeia de caracteres.
fonte
Eu tentaria isso na pasta em que todas as subpastas devem ser excluídas, mas a raiz (e os arquivos na raiz) permanecem como estão: para / D% v em (*) faça rd / s / q% v
para / D corresponde a diretórios e rd / s / q exclui cada um de cada vez
fonte
simplesmente:
rmdir / s / q "caminho"
mkdir "caminho"
fonte