shooter5530

Batch: leerer Ordner in Struktur finden und in CSV eintragen

Hallo Zusammen,

Ich bräuchte mal Hilfe...

Ich bin kein Profi in Batch aber lerne nochface-smile

Ich möchte eine Ordner Struktur Anlegen ( das is kein Problem das hab ich schon ) und dann im Main Verzeichnis eine CSV Datei erzeugen, in der ich sehen kann welche Ordner in der Struktur leer sind!

Geht das?

Danke Euch!

Gruß Shooti
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 1615989847

Url: https://administrator.de/forum/batch-leerer-ordner-in-struktur-finden-und-in-csv-eintragen-1615989847.html

Ausgedruckt am: 19.06.2025 um 09:06 Uhr

MrCount
MrCount 13.12.2021 aktualisiert um 17:07:41 Uhr
Goto Top
Servus,

nimm doch Poweshell...

Dieses Script löscht leere Ordner.
Müsstest du dir nur ein wenig umbauen, so dass nicht gelöscht sondern in deine CSV geschrieben wird.

$tdc=".\"  
$dirs = gci $tdc -directory -recurse | Where { (gci $_.fullName).count -eq 0 } | select -expandproperty FullName
$dirs | Foreach-Object { Remove-Item $_ }  #hier wird gelöscht
149569
149569 13.12.2021 um 17:19:16 Uhr
Goto Top
Jöp würde ich auch gleich Powershell für nehmen
get-ChildItem 'D:\Ordner' -Directory -recurse | ?{$_.GetFiles().Count -eq 0} | select Fullname | export-csv .\emptyfolders.csv -Delimiter ";" -NoType -Encoding UTF8  
Shooter5530
Shooter5530 13.12.2021 um 17:19:54 Uhr
Goto Top
Danke!

Leider kann ich kein Powershell face-sad

für mich wäre eine relative genaue Lösung in einer Batch sehr hilfreich. Habe mein ganzes Programm bis jetzt auf Batch aufgebaut.
149569
149569 13.12.2021 um 17:21:40 Uhr
Goto Top
Kannst du leicht in ne Batch einbauen
@echo off
powershell -EP Bypass -C "Get-ChildItem 'D:\Ordner' -Directory -recurse | ?{$_.GetFiles().Count -eq 0} | select Fullname | export-csv .\emptyfolders.csv -Delimiter ';' -NoType -Encoding UTF8"  
149569
149569 13.12.2021 aktualisiert um 17:29:43 Uhr
Goto Top
Wenn's wirklich pure Batch sein muss biddö
@echo off &setlocal enabledelayedexpansion
set "folder=D:\Ordner"  
>"emptyfolders.csv" (for /f "delims=" %%a in ('dir /b /s /ad "%folder%"') do (  
    set cnt=0
    for %%b in ("%%a\*") do set /a cnt+=1  
    if !cnt! == 0 echo.%%a
))
Shooter5530
Shooter5530 13.12.2021 um 17:37:37 Uhr
Goto Top
Danke!

Also irgendwie trägt der mir da nichts in die csv ein ???
Shooter5530
Shooter5530 13.12.2021 um 17:40:37 Uhr
Goto Top
Die Programmzeile sieht wie folgt aus:

move %~d0\Quellordner\%Karobau_Code%%Anlagennummer%_BAAL_* %LW%:\11_Elektrik\%Karobau_Code%%Anlagennummer%\1_Betriebsanleitung\

@echo off &setlocal enabledelayedexpansion
set "folder=%LW%:\11_Elektrik\%Karobau_Code%%Anlagennummer%\1_Betriebsanleitung\"
"emptyfolders.csv" (for /f "delims=" %%a in ('dir /b /s /ad "%folder%"') do (
set cnt=0
for %%b in ("%%a\*") do set /a cnt+=1
if !cnt! GTR 0 echo.%%a
))


pause
exit


Ich möchte jetzt feststellen ob die Betriebsanleitung in dem Ordner liegt, wenn ja ok und wenn nein soll mir in der CSV der leere Pfad oder der fehlende Dateiname angezeigt werden...
149569
Lösung 149569 13.12.2021 aktualisiert um 17:45:54 Uhr
Goto Top
Sorry typo muss im Vergleich natürlich == heißen ... ist oben korrigiert.
Shooter5530
Shooter5530 13.12.2021 um 18:08:22 Uhr
Goto Top
ok sehr geil! glaube das funktioniert! Ich danke dir vielmals!!
MrCount
MrCount 13.12.2021 um 18:15:33 Uhr
Goto Top
Zitat von @Shooter5530:

ok sehr geil! glaube das funktioniert! Ich danke dir vielmals!!

Dann kannst du den Beitrag ja auf "gelöst" setzen und die entsprechenden Kommentare markieren.
Zusätzlich sollte der Fragesteller die Antworten welche zur Lösungsfindung beigetragen haben, durch einen Klick auf "Zur Lösung beigetragen" neben der jeweiligen Antwort, markieren. Dies hilft Besuchern die Lösung für die Frage schneller aufzufinden.