Excluir vários arquivos na linha de comando do PowerShell

19

Com o PowerShell, qual é a maneira mais concisa de excluir vários arquivos nomeados explicitamente?

Por exemplo, no * ix, seria:

rm subDir/a.png anotherDir/b.jpg thirdDir/c.gif

Atualmente, estou usando:

echo subDir/a.png anotherDir/b.jpg thirdDir/c.gif|rm

Mas considero subótimo, então gostaria de ver alternativas.

Matthew Flaschen
fonte

Respostas:

27

Você pode fornecer vários rmcmdlets do cmdlet do PowerShell (que é um alias para Remove-Item), mas é necessário separá-los com vírgulas.

rm .\subDir\a.png, .\anotherDir\b.jpg, .\thirdDir\c.gif

Confira Get-Help Remove-Itempara mais detalhes. Ou leia alguma documentação no site da Microsoft.

William Jackson
fonte
4

Isto é o que eu acabei usando:

echo subDir/a.png anotherDir/b.jpg thirdDir/c.gif|rm

Isso usa echo para passar três argumentos de string para rm ( Remove-Item ). Eu acredito que isso usa implicitamente o -Pathparâmetro Remove-Item . A documentação observa que "O nome do parâmetro (" -Path ") é opcional" e aceita a entrada do pipeline por valor.

Matthew Flaschen
fonte
Isso é útil para copiar / colar vários arquivos do Git.
Shaun Luttin
0

Truque do cachorro velho, defina uma matriz primeiro. Coloque suas coisas nele, e RM o inferno fora disso.

$myArray = @("subDir/a.png","subDir/b.png","thirdDir/c.gif")
rm $myArray
JP Lizotte
fonte