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.