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

Mitglied: Shadow88

Shadow88 (Level 1) - Jetzt verbinden

02.04.2008, aktualisiert 03.04.2008, 15893 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

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 ...

Batch & Shell

Verknüpfungen von leeren Ordnern löschen

Frage von AmiKegoBatch & Shell2 Kommentare

Hallo, ich schreibe gerade ein Skript mit Batch das leere Ordner mit Unterordner löscht. Jetzt will ich es ein ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 13 StundenWindows 103 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 16 StundenAdministrator.de Feedback12 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...