Ich muss alle leeren Ordner über die Windows-Eingabeaufforderung aus meinem Anwendungsordner löschen.
Wie kann ich so eine Fledermausdatei erstellen?
Bitte hilf mir.
windows
command-line
command
directory
ENTWICKELT
quelle
quelle
for /f "tokens=*" %%d in ('dir /ad/b/s ^| sort /R') do rd "%%d"
%%d
mit%d
Sie können den
ROBOCOPY
Befehl verwenden. Es ist sehr einfach und kann auch zum Löschen leerer Ordner innerhalb einer großen Hierarchie verwendet werden.Hier sind sowohl Quelle als auch Ziel
folder1
, da Sie nur leere Ordner löschen müssen, anstatt andere (erforderliche) Dateien in einen anderen Ordner zu verschieben./S
Option ist das Überspringen des Kopierens (Verschieben - im obigen Fall) leerer Ordner. Dies ist auch schneller, da die Dateien auf demselben Laufwerk verschoben werden.quelle
Eine einfachere Möglichkeit besteht darin, mit xcopy eine Kopie der gesamten Verzeichnisstruktur mit dem Schalter / s zu erstellen. Hilfe für / s sagt Kopiert Verzeichnisse und Unterverzeichnisse mit Ausnahme von leeren.
Dabei ist dirA die Quelle mit leeren Ordnern. DirB ist die Kopie ohne leere Ordner
quelle
xcopy dirA dirB /SI
hinzufügen, wird beispielsweise die Eingabeaufforderung "Gibt dirB einen Dateinamen oder Verzeichnisnamen auf dem Ziel an?" Übersprungen.Sie brauchen usebackq nicht:
quelle
Zu der korrodierten Antwort auf derselben Seite, auf die verwiesen wird, gehört eine PowerShell-Version http://blogs.msdn.com/b/oldnewthing/archive/2008/04/17/8399914.aspx#8408736
Get-ChildItem -Recurse . | where { $_.PSISContainer -and @( $_ | Get-ChildItem ).Count -eq 0 } | Remove-Item
oder, genauer gesagt,
gci -R . | where { $_.PSISContainer -and @( $_ | gci ).Count -eq 0 } | ri
Gutschrift geht an den Buchungsautor
quelle
Dies ist ein Hybird der oben genannten. Es entfernt ALLE Dateien, die älter als X Tage sind, und alle leeren Ordner für den angegebenen Pfad. Zur Verwendung legen Sie einfach die Tage, den Ordnerpfad und das Laufwerk fest
quelle
"dir /ad/b/s | sort /R"
) do rd "%% d" entfernenüber die Befehlszeile: für / R / D% 1 in (*) rd "% 1"
in einer Batchdatei für / R / D %% 1 in (*) rd "%% 1"
Ich weiß nicht, ob es als solches dokumentiert ist, aber es funktioniert in W2K, XP und Win 7. Und ich weiß nicht, ob es immer funktioniert, aber es wird niemals versehentlich Dateien löschen.
quelle
Installieren Sie einen UNIX-Interpreter für Windows (Cygwin oder Git Bash) und führen Sie den Befehl cmd aus:
(Nicht wirklich mit der Windows-Cmd-Eingabeaufforderung, aber es ist einfach und dauerte einige Sekunden, um ausgeführt zu werden)
quelle
Es wird gut funktionieren. Dies ist der beste Weg, um alte Dateien zu löschen und leere Verzeichnisse rekursiv zu entfernen. Die folgende .bat-Datei lautet:
Die Platzhalter müssen wie folgt ersetzt werden (ohne Anführungszeichen):
Das Skript wurde erfolgreich unter Windows 7 und Windows Server 2003 getestet.
quelle
quelle
Wenn Sie die ROBOCOPY-Befehlszeile von Varun im Explorer-Kontextmenü verwenden möchten (dh mit der rechten Maustaste klicken), finden Sie hier einen Windows-Registrierungsimport. Ich habe versucht, dies als Kommentar zu seiner Antwort hinzuzufügen, aber das Inline-Markup war nicht möglich.
Ich habe dies auf meinem eigenen Windows 10-PC getestet, benutze es jedoch auf eigenes Risiko. Es wird eine neue Eingabeaufforderung geöffnet, der Befehl ausgeführt und angehalten, damit Sie die Ausgabe sehen können.
In eine neue Textdatei kopieren:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER \ Software \ Klassen \ Verzeichnis \ Hintergrund \ Shell \ Leere Ordner löschen \ Befehl] @ = "C: \ Windows \ System32 \ Cmd.exe / C \" C: \ Windows \ System32 \ Robocopy.exe \ "% V. "% V" / s / move "&& PAUSE"
[HKEY_CURRENT_USER \ Software \ Klassen \ Verzeichnis \ Shell \ Leere Ordner löschen \ Befehl] @ = "C: \ Windows \ System32 \ Cmd.exe / C \" C: \ Windows \ System32 \ Robocopy.exe \ "% V \" "% V" / s / move "&& PAUSE"
Benennen Sie die Erweiterung .txt in .reg um
quelle
Nun, nur ein schneller und schmutziger Vorschlag für eine einfache 1-Ebenen-Verzeichnisstruktur ohne Leerzeichen [Bearbeiten] und für Verzeichnisse, die nur EINEN Dateityp enthalten, den ich nützlich fand (irgendwann von http://www.pcreview.co.uk) /forums/can-check-if-folder-empty-bat-file-t1468868.html ):
/ ad: zeigt nur Verzeichniseinträge an
/ b: nacktes Format verwenden (nur Namen)
[Bearbeiten] Die Verwendung eines einfachen Sterns zum Überprüfen auf JEDE Datei (% a \ * oben) funktioniert nicht, danke für die Korrektur
Daher wäre das Löschen:
quelle