Eu quero remover todos os arquivos de uma estrutura de pastas, então fico com uma estrutura de pastas vazia.
Isso pode ser alcançado em scripts em lote ou VBScript ?
Eu tentei um comando em lote muito básico, mas isso exigia que o usuário permitisse a exclusão de cada arquivo. Esta não foi uma solução adequada, pois existem muitas centenas de arquivos e isso aumentará enormemente ao longo do tempo.
O que você pode sugerir?
windows
script
powershell
batch-file
vbscript
BobJim
fonte
fonte
rd /s /q "c:\folder a
irá realizar uma exclusão recursiva em todos os arquivos e pastas dentroFolder A
Respostas:
Isso pode ser feito usando o PowerShell :
Este comando coloca cada item filho
$path
, executa o método delete em cada um e é bastante rápido. A estrutura da pasta é deixada intacta.Se você tiver arquivos sem extensão, use
em vez de.
Parece que o
-File
parâmetro pode ter sido adicionado após o PowerShell v2. Se for esse o caso, entãoDeveria fazer o truque para arquivos que têm uma extensão.
Se não funcionar, verifique se você possui uma versão atualizada do Powershell
fonte
-Include *.*
não-Include .
, grande diferença! :-)-Include .
?? Esse é o problema.powershell --version
? Eles não podem usar um número de versão com dígitos positivos? É uma loucura. Mais de 1300 upvotes para uma pergunta sobre como descobrir o número da versão de um programa?PowerShell curto e em conjunto. Não tenho certeza com qual versão mais baixa do PS ele irá funcionar.
fonte
rm *
já que não é realmente aconselhável forçar (a caixa de diálogo de confirmação tem uma opção "Sim para todos").Você pode fazer isso com o
del
comando:A
/S
opção é excluir apenas arquivos recursivamente.fonte
/P
opção para solicitar que você confirme cada exclusão apenas para verificar isso.attrib -s -r -h Folder\*.* /s /d
antes de excluir. E para permissões, use otakeown
comandoLendo as entrelinhas da sua pergunta original, posso oferecer uma linha de código BATCH alternativa que você pode usar. O que isso fará quando executado é excluir apenas arquivos com mais de 60 dias. Dessa forma, você pode colocar isso em uma tarefa agendada e, quando executada, exclui os arquivos em excesso que você não precisa, em vez de afastar o diretório inteiro. Você pode alterar de 60 a 5 dias ou até 1 dia, se quiser. Isso não exclui pastas.
fonte
Usando o PowerShell:
fonte
Use o PowerShell para excluir um único arquivo ou pasta. Antes de executar o comando Excluir no PowerShell, precisamos garantir que você esteja conectado ao servidor ou PC com uma conta que tenha acesso total aos objetos que você deseja excluir.
Com exemplo: http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/
Usando os comunicados do PowerShell para excluir um arquivo
O comando acima executará e excluirá o arquivo “DummyfiletoDelete.txt”, que aparece dentro do local “C: \ dotnet-helpers”.
Usando os comunicados do PowerShell para excluir todos os arquivos
Usando os comunicados do PowerShell para excluir todos os arquivos e pastas
-recurse
detalha e encontra muitos outros arquivos. O–recurse
parâmetro permitirá que o PowerShell remova qualquer item filho sem pedir permissão. Além disso, o parâmetro –force pode ser adicionado para excluir arquivos ocultos ou somente leitura.Usando o comando -Force para excluir arquivos com força
Usando o comando PowerShell para excluir todos os arquivos com força
fonte
Tente isso usando o PowerShell. Neste exemplo, quero excluir todos os arquivos .class:
fonte
No Windows Explorer, selecione o diretório raiz que contém todos os arquivos e pastas.
Procurar por *
Classificar por tipo (todas as pastas estarão na parte superior e todos os arquivos listados abaixo)
Selecione todos os arquivos e pressione Excluir.
Isso excluirá todos os arquivos e preservará a estrutura de diretórios.
fonte
Exclua todos os arquivos do diretório e subdiretórios atuais, deixando a estrutura de pastas.
(
/Q
) é para perguntar ao usuário se ele pode excluirCuidado : tente sem o
/Q
para garantir que você não esteja excluindo nada precioso.fonte
Esta é a maneira mais fácil da IMO
Abra o PowerShell, navegue até o diretório (
cd
), THEN(Poof) tudo se foi ...
Se você deseja excluir com base em uma extensão específica
Todas as outras respostas parecem tornar isso mais confuso do que o necessário.
fonte
fonte
Como complemento para as respostas acima, na verdade não há necessidade de usar o Get-Childitem e passar o resultado para o pipeline nas respostas acima, porque a palavra-chave -Include está incluída no comando Remove-Item
Pode-se simplesmente:
Remove-Item -Include " . " "C: \ Temp" -Recurse
fonte