Themen Titel: Homepage Wolfgang Gerber :: Windows - leere Verzeichnisse löschen per Batch

Geschrieben von WOGE am 09-09-2010 11:06
#1

Leider gibt es für Windows noch immer kein Bordwerkzeug um leere Verzeichnisse auf einfache Weise zu löschen.

Im Internet kursieren unzählige mehr oder eher weniger brauchbare Programme mit Oberfläche. Aber m.W. kein einziges wirklich funktionierendes Tool für die Batchdatei (Kommandozeile) Ausser XXCOPY. Aber das hat leider bei bestimmten externen Laufwerken (Server) Probleme.

Folgende Programme haben so nebenbei solche Möglichkeiten als Option enthalten.

Mit Oberfläche:

FILESYNC (Freeware) http://www.fileware.com/
Ein geniales Tool um Verzeichnisse abzugleichen.

Als Kommandozeilentool:

XXCOPY (Freeware) http://www.xxcopy.com
Das ist allerdings nichts für Anfänger. Für den Profi ist es die eierlegende Wollmichsau zum Kopieren und Synchronisieren.

Ganz ohne Fremdprogramme geht es mit geschickter Kombination von vorhandenen DOS-Befehlen in einer Batchdatei.

Als Beispiel hier eine "killedir.bat". Aufruf mit [pfad\]killedir "Verzeichnis Name".
Mit " falls der Verzeichnisname Leerschritte enthält!
Wenn die Batchdatei im "path" liegt, kann der Pfad davor entfallen.

Code
@echo off
if ~%1~==~~ goto hilfe
echo DIR 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




Hinweis zu: "if ~%1~==~~ goto hilfe"

Hier unbedingt ~ statt den sonst üblichen " nehmen. Sonst beisst sich das mit übergebenen " bei Pfadnamen mit Leerschritten. Im Prinzip ist es völlig egal, was man als Hilfszeichen nimmt. Es würde auch "if x%1x==xx goto hilfe" gehen.

Als Option lässt sich das auch in das Kontextmenü übernehmen.

Diese Datei in der folgenden Box anlegen als z.B. "killedir.reg", den Pfad der Batchdatei anpassen und ausführen. Damit wird das in die Registry eingetragen. Ab sofort hat man bei Rechts-Mausklick mit dem Explorer auf einem Verzeichnisnamen den Befehl "kill-empty-dir".

Achtung: Es werden ohne Rückfrage alle leeren Verzeichnisse unterhalb des angeklickten Verzeichnisses entfernt.

Code

Windows Registry Editor Version 5.00

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

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




Bearbeitet von WOGE am 21-08-2014 08:24