Ich möchte alle Dateien aus einer Ordnerstruktur entfernen, daher verbleibt eine leere Ordnerstruktur.
Kann dies in Batch- oder VBScript- Skripten 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?
windows
script
powershell
batch-file
vbscript
BobJim
quelle
quelle
rd /s /q "c:\folder a
wird eine rekursive Löschung aller Dateien und Ordner innerhalbFolder A
Antworten:
Dies kann mit PowerShell erreicht werden :
Dieser Befehl ruft jedes untergeordnete Element auf
$path
, 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
stattdessen.
-File
Möglicherweise wurde der Parameter nach PowerShell v2 hinzugefügt. Wenn das der Fall ist, dannEs sollte den Trick für Dateien tun, die eine Erweiterung haben.
Wenn dies nicht funktioniert, prüfen Sie , ob Sie über eine aktuelle Version von Powershell verfügen
quelle
-Include *.*
kein-Include .
großer Unterschied! :-)-Include .
? Das ist das Problem.powershell --version
? Können sie keine Versionsnummer mit positiven Ziffern verwenden? Es ist nur verrückt. Mehr als 1300 Stimmen für eine Frage, wie man die Versionsnummer eines Programms herausfindet?Kurz und Suite PowerShell. Ich bin mir nicht sicher, mit welcher der niedrigsten PS-Versionen es funktionieren wird.
quelle
rm *
da es nicht wirklich ratsam ist, sie zu erzwingen (das Bestätigungsdialogfeld enthält ohnehin die Option "Ja zu allen").Sie können dies mit dem
del
Befehl tun :Der
/S
Schalter dient zum rekursiven Löschen von Dateien.quelle
/P
Option hinzufügen, sodass Sie aufgefordert werden, jedes Löschen zu bestätigen, um dies zu überprüfen.attrib -s -r -h Folder\*.* /s /d
vor dem Löschen vorgehen. Und für Berechtigungen verwenden Sie dentakeown
Befehl.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 wenn sie ausgeführt wird, werden die überschüssigen Dateien gelöscht, 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.
quelle
Verwenden von PowerShell:
quelle
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
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
Verwenden von PowerShell-Commnads zum Löschen aller Dateien und Ordner
-recurse
Drilldown und findet viel mehr Dateien. Mit diesem–recurse
Parameter 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
quelle
Versuchen Sie dies mit PowerShell. In diesem Beispiel möchte ich alle .class-Dateien löschen:
quelle
Wählen Sie im Windows Explorer das Stammverzeichnis mit allen Dateien und Ordnern.
Suchen nach *
Nach Typ sortieren (Alle Ordner befinden sich oben und alle Dateien darunter)
Wählen Sie alle Dateien aus und drücken Sie Löschen.
Dadurch werden alle Dateien gelöscht und die Verzeichnisstruktur beibehalten.
quelle
Löschen Sie alle Dateien aus dem aktuellen Verzeichnis und den Unterverzeichnissen, ohne die Ordnerstruktur zu verlassen.
Mit dem
/Q
Schalter ( ) wird der Benutzer gefragt, ob er löschen darfAchtung : Probieren Sie es aus, ohne
/Q
sicherzustellen, dass Sie nichts Wertvolles löschen.quelle
Dies ist der einfachste Weg, IMO
Öffnen Sie PowerShell, navigieren Sie zu dem Verzeichnis (
cd
), DANN(Poof) alles ist weg ...
Wenn Sie basierend auf einer bestimmten Erweiterung löschen möchten
Alle anderen Antworten scheinen dies verwirrender als nötig zu machen.
quelle
quelle
Als Ergänzung zu den obigen Antworten ist es nicht erforderlich, das Get-Childitem zu verwenden und das Ergebnis in den obigen Antworten an die Pipeline zu übergeben, da das Schlüsselwort -Include im Befehl Remove-Item enthalten ist
Man kann einfach:
Remove-Item -Include " . " "C: \ Temp" -Recurse
quelle