shooter5530
Goto Top

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

Content-Key: 1615989847

Url: https://administrator.de/contentid/1615989847

Printed on: April 23, 2024 at 09:04 o'clock

Member: MrCount
MrCount Dec 13, 2021 updated at 16:07:41 (UTC)
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
Mitglied: 149569
149569 Dec 13, 2021 at 16:19:16 (UTC)
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  
Member: Shooter5530
Shooter5530 Dec 13, 2021 at 16:19:54 (UTC)
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.
Mitglied: 149569
149569 Dec 13, 2021 at 16:21:40 (UTC)
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"  
Mitglied: 149569
149569 Dec 13, 2021 updated at 16:29:43 (UTC)
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
))
Member: Shooter5530
Shooter5530 Dec 13, 2021 at 16:37:37 (UTC)
Goto Top
Danke!

Also irgendwie trägt der mir da nichts in die csv ein ???
Member: Shooter5530
Shooter5530 Dec 13, 2021 at 16:40:37 (UTC)
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...
Mitglied: 149569
Solution 149569 Dec 13, 2021 updated at 16:45:54 (UTC)
Goto Top
Sorry typo muss im Vergleich natürlich == heißen ... ist oben korrigiert.
Member: Shooter5530
Shooter5530 Dec 13, 2021 at 17:08:22 (UTC)
Goto Top
ok sehr geil! glaube das funktioniert! Ich danke dir vielmals!!
Member: MrCount
MrCount Dec 13, 2021 at 17:15:33 (UTC)
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.