Powershell para excluir todos os arquivos com uma certa extensão de arquivo

7

Eu quero verificar um diretório (não há subs) e excluir qualquer arquivo com uma extensão de .avi Tentei essa sintaxe, mas nenhum erro foi lançado e nenhum arquivo foi excluído. Este é o código que eu tentei

get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}

O que deve ser alterado para excluir todos os arquivos .avi da pasta?

    
por user2676140 20.06.2016 / 13:59

4 respostas

6

Use del *.<extension> ou um de seus aliases (como rm , se você estiver mais acostumado a bater).

Portanto, seria del *.avi excluir todos os arquivos terminados em .avi no diretório de trabalho atual.

Use del <directory>\*.<extension> para excluir arquivos em outros diretórios.

    
por 20.06.2016 / 14:12
2

Assumindo o método preferido de abrir uma instância do Powershell no diretório, uma versão genérica seria a seguinte:

Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }

Para uma versão específica do diretório:

Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly' *.avi | foreach { Remove-Item -Path $_.FullName }

Adicione -Recurse a Get-ChildItem para afetar todas as pastas contidas.

Exemplo:

Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }
    
por 24.07.2017 / 01:31
0

Suponha que haja vários arquivos de texto no diretório atual.
dir * -include *.txt & dir *.txt funciona como esperado, mas dir -include *.txt não fornece nada. O motivo é bem explicado no estouro de pilha .

Comando corrigido:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}

    
por 20.06.2016 / 18:29
0

Isso finalmente fez isso por mim - tentei tudo acima e nada.

get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force

certeza de que two-force não é necessário, mas é isso que está funcionando, e é isso que estou mantendo.

    
por 14.08.2017 / 23:23