PowerShell löscht Dateien nur aus dem Verzeichnis


14

Ich versuche, alle Dateien (aber keine Verzeichnisse) im Ordner D: \ MyTemp zu löschen. Ich habe versucht:

Remove-Item "D:\MyTemp"
Remove-Item "D:\MyTemp\*"

Wenn ich jedoch nachschaue, sind alle Dateien noch vorhanden.
Was vermisse ich?

Antworten:


18

Versuche dies:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer }

Habe es hier gefunden: /superuser/150748/have-powershell-get-childitem-return-files-only

So löschen Sie nur alle Dateien im angegebenen Verzeichnis (Unterverzeichnisse werden ignoriert):

Remove-Item "D:\MyTemp\*.*" | Where { ! $_.PSIsContainer }

1
Hier wird nur die Datei im aktuellen Verzeichnis
aufgelistet

Ich bin mir nicht sicher, ob du einen Rückfall machen willst. Ich werde das Original bearbeiten. Sie können einfach -recurse zum Befehl Get-ChildItem hinzufügen
bourne

Dies funktioniert (nur Dateien aus dem angegebenen Verzeichnis löschen, Unterverzeichnisse ignorieren): Remove-Item "D: \ MyTemp \ *. *" | Wo { ! $ _. PSIsContainer}
SteB

Das ist großartig. Ich bin froh, dass es funktioniert.
Borowski

Sorry übrigens, ich habe gerade gemerkt, dass ich vergessen habe, den Remove-Item einzuschließen. Es wird ein langer Tag, wow!
Borowski

12

Die akzeptierte Antwort hat bei mir nicht funktioniert, stattdessen brauchte ich:

Get-Childitem -File | Foreach-Object {Remove-Item $_.FullName}

Um sowohl Ordner als auch Dateien einzuschließen, fügen Sie Folgendes hinzu -Recurse:

Get-Childitem -File -Recurse | Foreach-Object {Remove-Item $_.FullName}

1
Dies löscht auch Dateien aus Unterverzeichnissen - möglicherweise nicht das, was das OP vorhatte ...
Robbie Dee

1
Diese Antwort sollte man annehmen. Ich habe Dich ausgewählt!
Teoman Shipahi

4

Sie waren fast da, Sie brauchten nur:

Remove-Item "D:\MyTemp\*.*"

0

@bourne hatte es fast geschafft:

Get-ChildItem *.* -recurse | Where { ! $_.PSIsContainer } | remove-item

3
Dies gibt keine Antwort auf die Frage. Sobald Sie einen ausreichenden Ruf haben, können Sie jeden Beitrag kommentieren . Geben Sie stattdessen Antworten an, die nicht vom Fragesteller geklärt werden müssen . - Aus der Bewertung
rnxrx

Was meinst du damit, dass es keine Antwort gibt? Was tut es? Es ist die einzige vollständige Antwort auf der Seite.
Mordechai

Es ist keine autarke Antwort. Bis auf den Punkt in Ihrer Antwort handelt es sich um eine Korrektur einer anderen Antwort, die als Kommentar eingefügt werden sollte.
rnxrx

Entschuldigung, ich denke du verstehst Powershell nicht. Nur weil ich mich auf eine andere Antwort beziehe, macht sie meine nicht weniger "autark",
Mordechai

Vielleicht möchten Sie das Problem mit der anderen Antwort erklären und daraus einen Befehl machen. Andernfalls möchten Sie vielleicht erklären, was Ihr Powershell-Befehl bewirkt
Dennis Nolte
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.