web-dev-qa-db-fra.com

Powershell supprimer tous les fichiers avec une certaine extension de fichier

Je souhaite analyser un répertoire (il n'y a pas de sous-programmes) et supprimer tout fichier portant l'extension .avi. J'ai essayé cette syntaxe, mais aucune erreur n'a été générée et aucun fichier n'a été supprimé. C'est le code que j'ai essayé

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

Que faut-il modifier pour supprimer tous les fichiers .avi du dossier?

11
user2676140

Utilisez del *.<extension> ou l'un de ses alias (comme rm, si vous êtes plus habitué à bash).

Donc, ce serait del *.avi pour supprimer tous les fichiers se terminant par .avi dans le répertoire de travail en cours.

Utilisez del <directory>\*.<extension> pour supprimer des fichiers dans d'autres répertoires.

10
GiantTree

En supposant que la méthode préférée pour ouvrir une instance de Powershell dans le répertoire, une version générique serait la suivante:

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

Pour une version spécifique à un répertoire:

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

Ajoutez -Recurse à Get-ChildItem pour affecter tous les dossiers contenus.

Exemple:

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

Cela a finalement réussi pour moi - essayé tout ce qui précède et nada.

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

deux personnes ne sont pas nécessaires, mais c’est ce qui fonctionne et c’est ce que je tiens.

0
visionmn2

Supposons qu'il y ait plusieurs fichiers texte dans le répertoire actuel.
dir * -include *.txt & dir *.txt fonctionnent comme prévu, mais dir -include *.txt ne donne rien. La raison est bien expliquée sur Stack Overflow .

Commande corrigée:
dir 'C:\Users\ramrod\Desktop\Firefly\*.avi' | foreach {del $_}

0
guest-vm