Batch zum entfernen von leeren Ordnern mit Unterverzeichnisse aus einem bestimmten Pfad
Hallo miteinander
Ich habe bereits eine "fast" Lösung für mein Problem gefunden. Da ich mich aber mit VB Scripten in Batchdateien nicht auskenne, komme ich so nicht weiter.
Ich möchte das folgende Script soweit erweitern, dass ich vorher sagen kann, welches Stammverzeichnis überprüft werden soll. Z.B. C:\Temp
Das Script arbeitet sonst tadellos und löscht auch fleißig alle leeren Ordner.
Kann mir dort jemand weiterhelfen und das Script um die fehlenden Zeilen ergänzen?
Vielen Dank im voraus!
-LangA-
Ich habe bereits eine "fast" Lösung für mein Problem gefunden. Da ich mich aber mit VB Scripten in Batchdateien nicht auskenne, komme ich so nicht weiter.
Ich möchte das folgende Script soweit erweitern, dass ich vorher sagen kann, welches Stammverzeichnis überprüft werden soll. Z.B. C:\Temp
@echo off & setlocal
set D=%temp%\DelEmptyFolders.vbs
echo DeleteEmptyFolders(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.Arguments(0)))>%D%
echo Sub DeleteEmptyFolders(Ordner):For Each Unter In Ordner.SubFolders:DeleteEmptyFolders(Unter)>>%D%
echo If (Unter.SubFolders.Count+Unter.Files.Count)=0 Then:Unter.Delete:End If:Next:End Sub>>%D%
cscript //nologo %D% "%~dp0"
del %D%
Das Script arbeitet sonst tadellos und löscht auch fleißig alle leeren Ordner.
Kann mir dort jemand weiterhelfen und das Script um die fehlenden Zeilen ergänzen?
Vielen Dank im voraus!
-LangA-
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 92312
Url: https://administrator.de/forum/batch-zum-entfernen-von-leeren-ordnern-mit-unterverzeichnisse-aus-einem-bestimmten-pfad-92312.html
Ausgedruckt am: 18.06.2025 um 05:06 Uhr
2 Kommentare
Neuester Kommentar
Moin -LangA-,
willkommen im Forum.
Im Moment werden alle leeren Unterordner gelöscht, die unterhalb des Speicher/Lagerortes der Batchdatei eigentlich neimand stören.
Das regelt diese Zeile:
Dort steht (nur) drin, dass der generierte VBS-Schnipsel mit dem Parameter "%~dp0" aufgerufen werden soll. Und "%~dp0" heißt nur "Drive/Path der getarteten Batchdatei".
Die einfachste Alternative wäre wohl, wenn..
Änderung:
Grüße
Biber
willkommen im Forum.
Im Moment werden alle leeren Unterordner gelöscht, die unterhalb des Speicher/Lagerortes der Batchdatei eigentlich neimand stören.
Das regelt diese Zeile:
...
cscript //nologo %D% "%~dp0"
Die einfachste Alternative wäre wohl, wenn..
- wenn die Batchdatei mit einem Parameter aufgerufen wird, dann "lösche unterhab dieses Parameters" %1
- wenn ohne Parameter aufgerufen, dann Verhalten wir bisher... unterhalb des Batchdatei-Verzeichnisses.
Änderung:
...
If "%~1" =="" cscript //nologo %D% "%~dp0"
If "%~1" NEQ "" cscript //nologo %D% "%~1"
...
Grüße
Biber