Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch zum entfernen leerer Ordner in einem Verzeichnis

Frage Entwicklung Batch & Shell

Mitglied: Shadow88

Shadow88 (Level 1) - Jetzt verbinden

02.04.2008, aktualisiert 03.04.2008, 15742 Aufrufe, 2 Kommentare

Erst mal: Ich bin nicht besonders fit in Bat Programmierung also "Deutsch" mit mir reden, danke =)

Hallo zusammen =),

hoffe ihr könnt mir bei einem kleinen Problem helfen.

Und zwar möchte ich eine .bat erstellen die in dem Verzeichnis in dem sie liegt alle leeren Ordner und deren leere Unterordner löscht.

Zum Beispiel:


01.
C:/Aufraeumarbeiten                                 (variables Stammverzeichnis, kann auch anderen Namen haben) 
02.
C:/Aufraeumarbeiten/aufrauemen.bat                          
03.
-> C:/Aufraeumarbeiten/Ordner_leer                  # 
04.
-> C:/Aufraeumarbeiten/Ordner_leer/Ordner_voll      # 
05.
-> C:/Aufraeumarbeiten/Ordner_leer/Ordner_leer      #   Werden von batch nach leeren Ordnern durchsucht und diese sollen 
06.
-> C:/Aufraeumarbeiten/Ordner_voll/Ordner_voll      #   gelöscht werden. Volle Ordner bleiben bestehend. 
07.
-> C:/Aufraeumarbeiten/Ordner_voll/Ordner_leer      # 
08.
-> C:/Aufraeumarbeiten/Ordner_voll                  #


Hoffe ihr könnt mir da helfen =)

Vielen Dank schon mal!

Glg,

Shadow88
Mitglied: bastla
02.04.2008 um 23:13 Uhr
Hallo Shadow88 und willkommen im Forum!

Eigentlich nehme ich für solche Zwecke lieber ein VBScript - aber das lässt sich auch in einen Batch einbetten:
01.
@echo off & setlocal 
02.
set D=%temp%\DelEmptyFolders.vbs 
03.
echo DeleteEmptyFolders(CreateObject("Scripting.FileSystemObject").GetFolder(WScript.Arguments(0)))>%D% 
04.
echo Sub DeleteEmptyFolders(Ordner):For Each Unter In Ordner.SubFolders:DeleteEmptyFolders(Unter)>>%D% 
05.
echo If (Unter.SubFolders.Count+Unter.Files.Count)=0 Then:Unter.Delete:End If:Next:End Sub>>%D% 
06.
cscript //nologo %D% "%~dp0" 
07.
del %D%
Diese Batchdatei erzeugt ein temporäres VBScript ("DelEmptyFolders.vbs") im Temp-Verzeichnis (der komplette Pfad zum Script wird in der Variablen %D% gespeichert), ruft dieses auf ("cscript //nologo %D%") und übergibt als Ausgangsverzeichnis den Pfad zum Ordner, in dem die Batchdatei selbst liegt - die Schreibweise
01.
"%~dp0"
steht für "Laufwerk (drive) und Pfad (path) der Batchdatei" (diese liest ihren eigenen Pfad und Dateinamen aus dem Parameter %0). Mit den umgebenden Anführungszeichen wird für den Fall vorgesorgt, dass der Pfad Leerzeichen enthalten sollte.

Das VBScript beginnt dann im Ausgangsverzeichnis damit, rekursiv die gesamte Unterverzeichnisstruktur zu durchforsten und stellt für jedes Unterverzeichnis fest, ob die Anzahl der darin enthaltenen Dateien und weiteren Unterverzeichnisse insgesamt 0 ist - in diesem Fall ist dieses Verzeichnis leer und kann gelöscht werden.

Da ich das VBScript in den drei "echo"-Zeilen doch ein wenig komprimiert hinterlegt habe, hier das Ganze nochmals in etwas aufgelockerter Schreibweise:
01.
DeleteEmptyFolders(CreateObject("Scripting.FileSystemObject"). _ 
02.
	GetFolder(WScript.Arguments(0))) 
03.
 
04.
Sub DeleteEmptyFolders(Ordner) 
05.
For Each Unter In Ordner.SubFolders 
06.
	DeleteEmptyFolders(Unter) 
07.
	If (Unter.SubFolders.Count+Unter.Files.Count) = 0 Then 
08.
		Unter.Delete 
09.
	End If 
10.
Next 
11.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Shadow88
03.04.2008 um 09:22 Uhr
Boahh.... bin wirklich beeindruckt =)

Vielen Herzlichen Dank!

Glg,

Shadow88
Bitte warten ..
Ähnliche Inhalte
Windows 7
RMDIR meldet: Das Verzeichnis ist nicht leer
gelöst Frage von sisiphusWindows 74 Kommentare

Hallo, Per Batchdatei lösche ich regelmäßig einen lokalen Ordner auf meiner Festplatte mit folgendem Befehl: Nicht immer, aber doch ...

Monitoring
Zabbix: wenn Verzeichnis fehlt oder leer ist, dann Trigger
gelöst Frage von honeybeeMonitoring5 Kommentare

Hallo, kann man in Zabbix so konfigurieren, dass ein Trigger ausgelöst wird, wenn ein bestimmtes Verzeichnis fehlt oder leer ...

Batch & Shell
Batch-datei gesucht um (Zwischen)-Ordner zu entfernen, Inhalte aber zu belassen
gelöst Frage von bobbbyBatch & Shell6 Kommentare

Hallo liebe Experten für Batch-files unter Win (7, 64bit), Meine Problemstellung: In meinem Workflow beim Importieren von Bilddaten und ...

Batch & Shell
Leere Array-Werte aus einem Array entfernen
gelöst Frage von ToniHoBatch & Shell3 Kommentare

Hallo zusammen, ich bin dabei ein Powershell-Script zu schreiben, welches diverse Reports generieren kann. Für die Eingabe von SamAccountNames ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 5 StundenBatch & Shell6 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 7 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 22 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 23 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Server-Hardware
Braucht ein Server eine Grafikkarte?
gelöst Frage von lcer00Server-Hardware14 Kommentare

Hallo zusammen, habe gerade 3 Stunden gebraucht, um herauszubekommen, dass die Remotemanagement-Console von Intel (RMM4) nur funktioniert, wenn die ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...