Wie kann man leere Unterverzeichnise per Batch löschen?

... komplette Frage anzeigen

2 Antworten

Das ist ein bisschen umständlich und Du solltest Dir die Hilfen zu den jeweiligen Befehlen sehr gut durchlesen, da Du Dir hiermit bei unqualifiziertem Gebrauch/Veränderungen u.U. auch Ordner mit Inhalt löschen kannst!

@echo off
setlocal enabledelayedexpansion

REM KEINE Wildcards in den Parameter-Angaben !!!

for %%P in (%*) do (
pushd "%%~fP"
echo.
echo Bereinige "%%~fP" ...
echo.
for /R %%V in (*) do (
echo.
echo Überprüfe "%%~fV" auf Inhalte ...
echo.
set /a counter=0
for /f "usebackq delims=" %%D (`dir /a/b/-p "%%~fV"`) do (
set /a counter+=1
)
if !counter! equ 0 (
call :queryDel "%%~fV"
) else (
echo !counter! Objekte gefunden.
)
)
popd
)
echo.
echo Fertig.
echo.
goto :eof

:queryDel
echo Der Ordner "%~f1" scheint leer zu sein.
choice /N /M "Wollen Sie diesen Ordner jetzt löschen [J/N]? "
if errorlevel 1 exit /b 1
if errorlevel 0 rd "%~f1"
goto :eof

Ich habe dieses Skript NICHT GETESTET, da ich gerade unter Linux arbeite. Aber es sollte auch das tun, was es soll. Falls sich dennoch ein Fehler eingeschleust haben sollte, dann sag kurz Bescheid, damit ich das nochmal debuggen kann.

Wie auch immer, Du benutzt dieses Skript auf eigenes Risiko. Beim automatischen Löschen ist IMMER Vorsicht angeraten. Du solltest zur Sicherheit einige PAUSE-Befehle einfügen und die erste Zeile auf "@echo on" setzen, damit Du den Ablauf verfolgen kannst und zur Not abbrechen kannst (CTRL+C).

Ansonsten: viel Spaß!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DominikPrinz
23.10.2016, 12:21

Erstmal danke für deine Mühe, aber

  1. Wo gebe ich den Pfad zum Ordner an, dessen leere Unterverordner ich löschen möchte?
  2. Ich möchte das ganze in ein Backup-Skript einbauen, es sollen die leeren Unterordner eines bereits gesichteren Ordners gelöscht werden, somit wäre es nicht allzu schlimm wenn einige Ordner mit Inhalt gelöscht werden.

Ich hoffe dass ich mich halbwegs verständlich ausgedrückt habe ^^.

0

Hallo!

Der Befehl heist "rd" (remove dir), es gibt noch einige Parameter, u.a. um auch Unterverzeichnisse zu löschen, gib da im cmd-Fenster einfach "rd ?" ein.

Gruß

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DominikPrinz
13.10.2016, 19:30

Für "rd" gibt es zwei Parameter, jedoch hilft mir keins von beiden weiter, da ich, wie in der Frage steht, nur die leeren Verzeichnisse und Unterverzeichnisse löschen möchte.

0

Was möchtest Du wissen?