Desejo verificar um diretório (não há subs) e excluir qualquer arquivo com uma extensão .avi
. Tentei esta sintaxe, mas nenhum erro é gerado e nenhum arquivo é 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 .avi
arquivos da pasta?
powershell
powershell-5.0
user2676140
fonte
fonte
rm *.avi
? (Sim, isso é uma sintaxe válida do PowerShell, porquerm
é um alias dedel
.rm
edel
são ambos os aliases doRemove-Item
cmdlet.Respostas:
Use
del *.<extension>
ou um dos seus pseudônimos (comorm
se você estiver mais acostumado com o bash).Portanto, seria
del *.avi
para excluir todos os arquivos que terminam no.avi
diretório de trabalho atual.Use
del <directory>\*.<extension>
para excluir arquivos em outros diretórios.fonte
ls *.avi -Recurse | foreach {rm $_}
Supondo que o método preferido de abrir uma instância do Powershell no diretório, uma versão genérica seria a seguinte:
Para uma versão específica do diretório:
Adicionar em
-Recurse
queGet-ChildItem
a afetar todas as pastas contidas.Exemplo:
fonte
O
Remove-Item
commandlet deve ser tudo o que você precisa. Basta passar a pasta raiz onde os arquivos avi existem e passar arecurse
bandeira junto com um filtro:Isso deve ser executado mais rapidamente do que encontrar os arquivos
Get-ChildItem
e chamarRemove-Item
cada um deles.A adição da
-WhatIf
opção solicitará que você exclua cada arquivo, o que é mais seguro para as pessoas menos confortáveis com o PowerShell.fonte
-WhatIf
interruptor é desnecessário. Enviei uma edição para esta resposta. +1 ORemove-Item
commandlet é tudo o que você precisa e é executado mais rapidamente que a resposta atualmente aceita.-whatif
para verificar se você removerá apenas os arquivos que deseja remover. E, especialmente, ao oferecer um comando de exclusão para aqueles de conhecimento técnico desconhecido. Melhor manter as rodinhas.Suponha que haja vários arquivos de texto no diretório atual.
dir * -include *.txt
&dir *.txt
trabalho como esperado, masdir -include *.txt
não dá nada. O motivo está bem explicado no Stack Overflow .Comando corrigido:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}
fonte
Isso finalmente fez isso por mim - tentei tudo acima e nada.
Certifique-se de que duas forças não são necessárias, mas é isso que está funcionando.
fonte
tente isso
fonte