Leere Verzeichnisse finden( und loeschen)

01/12/2010 - 22:06 von ram | Report spam
Manchmal fànde ich es ganz nützlich, wenn leere
Verzeichnisse etwas besser unterstützt werden würden. Ich
könnte es ja selber programmieren, aber gibt es vielleicht
bereits im normalen Windows Explorer oder in bekannten
GUI-Zusatzprogrammen, wie beispielsweise »Agent Ransack«,
Unterstützung für folgende Aufgaben:

- In einem Ordner alle leeren Unterordner finden

- Wie im vorherigen Punkt, und dann zusàtzlich:
Diese alle löschen

- Ein bestimmtes Verzeichnis löschen, aber nur
falls dies leer ist (àhnlich wie manche
Kommandozeilenprogramme, welche sich weigern
nichtleere Verzeichnisse ohne eine spezielle
Option zu löschen)

(Ich vermute, die »Size«-Option in »Agent Ransack«
bezieht sich nur auf Dateien und nicht auf Ordner.)

Punkte 1 und 2 sollen verwendet werden, wenn es zu viele
Verzeichnisse sind (beispielsweise 1000 leere
Unterverzeichnisse und 1000 nichtleere), um jedes manuell
auf Leerheit zu prüfen. Punkt 3 soll beim manuellen Löschen
eines als leer geglaubten Verzeichnisses eine zusàtzliche
Sicherheit bieten.
 

Lesen sie die antworten

#1 Jens Fittig
01/12/2010 - 22:44 | Warnen spam
Stefan Ram schrieb:

Manchmal fànde ich es ganz nützlich, wenn leere
Verzeichnisse etwas besser unterstützt werden würden. Ich
könnte es ja selber programmieren, aber gibt es vielleicht
bereits im normalen Windows Explorer oder in bekannten
GUI-Zusatzprogrammen, wie beispielsweise »Agent Ransack«,
Unterstützung für folgende Aufgaben:



<...>

Diese Funktion ist in diversen Programmen enthalten. Z.B. auch in
Filesync und per xxcopy.

Funktionierende Standalonelösungen sind allerdings selten. Oder
funktionieren nicht richtig.

Ich habe nach einer àhnlichen Anfrage vor einigen Wochen hier oder
nebenan mal so eine Anleitung gefunden:

killedir.bat

| @echo off
| if ~%1~==~~ goto hilfe
| echo DIR %1 wird eingelesen
| FOR /F "delims=" %%a in ('"dir /b /s /ad %1 | sort /r"') do rd "%%a" 2>nul && echo ^> %%a
| echo fertig
| goto ende
| :hilfe
| echo Aufruf mit Pfad ( BSP: killedir d:\daten )
| pause
| :ende
| pause

ohne die | am Anfang!

Wobei die Batchdatei im Pfad (path) sein muss. Oder du legst sie auf
den Desktop und ziehst das zu löschende Verzeichnis drauf.

Noch eleganter geht es mit einem Kontexteintrag. Dazu muss folgendes
in die Registry geschrieben werden:


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\killedir]
@="Kill-empty-dir"

[HKEY_CLASSES_ROOT\Folder\shell\killedir\command]
@="\"c:\\bat\\killedir.bat\" \"%1\""


Den Text zwischen den in eine killedir.reg kopieren, anpassen und
ausführen.

Das Verzeichnis c:\bat muss entsprechend deiner Organisation eventuell
geàndert werden. Je nachdem wo die Batchdatei liegt.

Damit kannst du per Rechtsklick auf ein "Dir" den Befehl
"Kill-empty-dir" direkt auf ein Verzeichnis anwenden. Alle darin
enthaltenen leeren Verzeichneisse werden gelöscht.

Frag mich bitte nichts zu der o.g. Syntax. Ich habe das nicht
zusammengebastelt und kann es dir nicht erklàren.

Ähnliche fragen