Ich möchte ein Verzeichnis scannen (es gibt keine Unterverzeichnisse) und alle Dateien mit der Erweiterung löschen. .avi
Ich habe diese Syntax ausprobiert, aber es werden keine Fehler ausgegeben und keine Dateien gelöscht. Dies ist der Code, den ich ausprobiert habe
get-childitem 'C:\Users\ramrod\Desktop\Firefly' -include *.avi | foreach ($_) {remove-item $_.fullname}
Was muss geändert werden, um alle .avi
Dateien aus dem Ordner zu löschen?
Antwort1
Verwenden Sie del *.<extension>
oder einen seiner Aliase (z. B. rm
, wenn Sie eher an Bash gewöhnt sind).
Das bedeutet, del *.avi
dass alle Dateien .avi
im aktuellen Arbeitsverzeichnis gelöscht werden müssen, die mit enden.
del <directory>\*.<extension>
Wird zum Löschen von Dateien in anderen Verzeichnissen verwendet .
WARNUNG:Beide löschen andere Erweiterungen del *.<extension>
, del <directory>\*.<extension>
die dem Muster entsprechen. Diese Dateien werden nicht in den Papierkorb verschoben.
Beispiel: del *.doc*
löscht *.doc, *.docmUnd *.docx. Das del <directory>\*.<extension>
funktioniert ähnlich.
Antwort2
Ausgehend von der bevorzugten Methode zum Öffnen einer Powershell-Instanz im Verzeichnis würde eine generische Version wie folgt aussehen:
Get-ChildItem *.avi | foreach { Remove-Item -Path $_.FullName }
Für eine verzeichnisspezifische Version:
Get-ChildItem -Path 'C:\Users\ramrod\Desktop\Firefly\' *.avi | foreach { Remove-Item -Path $_.FullName }
Fügen Sie -Recurse
es hinzu Get-ChildItem
, um alle enthaltenen Ordner zu beeinflussen.
Beispiel:
Get-ChildItem *.avi -Recurse | foreach { Remove-Item -Path $_.FullName }
Antwort3
DerGegenstand entfernenDas Cmdlet sollte alles sein, was Sie brauchen. Geben Sie einfach den Stammordner an, in dem die AVI-Dateien vorhanden sind, und übergeben Sie den -Recurse
Parameter zusammen mit einem Filter:
Remove-Item 'C:\Users\ramrod\Desktop\Firefly\*' -Recurse -Include *.avi
Dies sollte schneller ausgeführt werden, als die Dateien über zu suchen und jede einzelne Get-ChildItem
aufzurufen .Remove-Item
- Durch Hinzufügen des
-WhatIf
Schalters werden die Elemente aufgelistet, die gelöscht werden würden, der eigentliche Löschvorgang wird jedoch nicht durchgeführt. - Wenn Sie den
-Confirm
Schalter hinzufügen, werden Sie vor dem Löschen jeder Datei gefragt. Dies ist sicherer für Personen, die sich mitPower Shell.
Antwort4
Das hat es bei mir endlich geholfen – habe alles oben genannte versucht und nichts.
get-childitem "<drive>:\<folder>" -recurse -force -include *.<ext> | remove-item -force
sicher, dass Two-Force nicht erforderlich ist, aber es funktioniert, also bleibe ich dabei.