it-swarm.com.de

Löschen Sie alle Dateien aus einem Ordner und seinen Unterordnern

Ich möchte alle Dateien aus einer Ordnerstruktur entfernen, daher verbleibt eine leere Ordnerstruktur.

Kann dies entweder in Batch oder VBScript scripting erreicht werden?

Ich habe einen sehr einfachen Batch-Befehl ausprobiert, aber dazu musste der Benutzer das Löschen jeder Datei zulassen. Dies war keine geeignete Lösung, da es viele hundert Dateien gibt, die mit der Zeit erheblich zunehmen werden.

Was können Sie vorschlagen?

42
BobJim

Dies kann mit PowerShell erreicht werden:

Get-ChildItem -Path C:\Temp -Include *.* -File -Recurse | foreach { $_.Delete()}

Dieser Befehl ruft jedes untergeordnete Element in $path ab, führt die Löschmethode für jedes Element aus und ist recht schnell. Die Ordnerstruktur bleibt erhalten.

Wenn Sie Dateien ohne Erweiterung haben, verwenden Sie

Get-ChildItem -Path C:\Temp -Include * -File -Recurse | foreach { $_.Delete()}

stattdessen.

Möglicherweise wurde der Parameter -File nach PowerShell v2 hinzugefügt. Wenn das der Fall ist, dann

Get-ChildItem -Path C:\Temp -Include *.* -Recurse | foreach { $_.Delete()}

Es sollte den Trick für Dateien tun, die eine Erweiterung haben.

Wenn es nicht funktioniert, überprüfen Sie, ob Sie eine aktuelle Version von Powershell haben

65
MDMoore313

Sie können dies mit dem Befehl del tun:

dir C:\folder
del /S *

Der Schalter /S dient zum rekursiven Löschen von Dateien.

21
phoops

Kurz und Suite PowerShell. Ich bin mir nicht sicher, mit welcher der niedrigsten PS-Versionen es funktionieren wird.

Remove-Item c:\Tmp\* -Recurse -Force
13
Evan Nadeau

Wenn ich zwischen den Zeilen Ihrer ursprünglichen Frage lese, kann ich eine alternative BATCH-Codezeile anbieten, die Sie verwenden können. Beim Ausführen werden nur Dateien gelöscht, die älter als 60 Tage sind. Auf diese Weise können Sie dies in eine geplante Aufgabe einfügen und beim Ausführen die überschüssigen Dateien löschen, die Sie nicht benötigen, anstatt das gesamte Verzeichnis wegzublasen. Sie können 60 bis 5 Tage oder sogar 1 Tag ändern, wenn Sie wollten. Hiermit werden keine Ordner gelöscht.

forfiles -p "c:\path\to\files" -d -60 -c "cmd /c del /f /q @path"
4
Travis

Verwenden von PowerShell:

Get-ChildItem -Path c:\temp -Include * | remove-Item -recurse 
2

Verwenden Sie PowerShell, um eine einzelne Datei oder einen Ordner zu löschen. Bevor wir den Befehl Löschen in Powershell ausführen, müssen wir sicherstellen, dass Sie auf dem Server oder PC mit einem Konto angemeldet sind, das uneingeschränkten Zugriff auf die zu löschenden Objekte hat.

Mit Beispiel:http://dotnet-helpers.com/powershell-demo/how-to-delete-a-folder-or-file-using-powershell/

Verwenden von PowerShell-Commnads zum Löschen einer Datei

Remove-Item -Path "C:\dotnet-helpers\DummyfiletoDelete.txt"

Mit dem obigen Befehl wird die Datei "DummyfiletoDelete.txt" ausgeführt und gelöscht, die sich im Verzeichnis "C:\dotnet-helpers" befindet.

Verwenden von PowerShell-Commnads zum Löschen aller Dateien

Remove-Item -Path "C:\dotnet-helpers *. *"

Verwenden von PowerShell-Commnads zum Löschen aller Dateien und Ordner

Remove-Item -Path "C:\dotnet-helpers *. *" -Recurse

-recurse führt einen Drilldown durch und findet viel mehr Dateien. Mit dem Parameter –recurse kann PowerShell untergeordnete Elemente entfernen, ohne um Erlaubnis zu bitten. Darüber hinaus kann der Parameter –force hinzugefügt werden, um versteckte oder schreibgeschützte Dateien zu löschen.

Verwenden des Befehls -Force zum erzwungenen Löschen von Dateien

Verwenden des PowerShell-Befehls zum erzwungenen Löschen aller Dateien

Remove-Item -Path "C:\dotnet-helpers *. *" -Force

2

Dies ist der einfachste Weg, IMO

Öffnen Sie PowerShell, navigieren Sie zum Verzeichnis (cd),UND DANN

ls -Recurse * | rm

(Poof) alles ist weg ...

Wenn Sie basierend auf einer bestimmten Erweiterung löschen möchten

ls -Recurse *.docx | rm

ls listet das Verzeichnis auf

-Recurse ist eine Markierung, mit der Powershell angewiesen wird, in Unterverzeichnisse zu wechseln

* sagt alles

*.doc alles mit der Erweiterung .doc

| füttert die Ausgabe von links nach rechts

rm löschen

Alle anderen Antworten scheinen dies verwirrender als nötig zu machen.

1
Kolob Canyon

Versuchen Sie dies mit PowerShell. In diesem Beispiel möchte ich alle .class-Dateien löschen:

Get-ChildItem '.\FOLDERNAME' -include *.class -recurse | foreach ($_) {remove-item $_.FullName}
1
Boubakr

Löschen Sie alle Dateien aus dem aktuellen Verzeichnis und den Unterverzeichnissen, ohne die Ordnerstruktur zu verlassen.

Der Schalter (/Q) dient dazu, den Benutzer zu fragen, ob er zum Löschen berechtigt ist

Achtung : versuchen Sie es ohne den /Q, um sicherzustellen, dass Sie nichts Wertvolles löschen.

del /S * /Q 
1
hdoghmen
  1. Wählen Sie im Windows Explorer das Stammverzeichnis mit allen Dateien und Ordnern.

  2. Suchen nach *

  3. Nach Typ sortieren (Alle Ordner befinden sich oben und alle Dateien darunter)

  4. Wählen Sie alle Dateien aus und drücken Sie Löschen.

Dadurch werden alle Dateien gelöscht und die Verzeichnisstruktur beibehalten.

1
Emel
dir C:\testx\ -Recurse -File | rd -WhatIf
What if: Performing the operation "Remove File" on target "C:\testx\x.txt".
What if: Performing the operation "Remove File" on target "C:\testx\bla\x.txt".
0
user646044