gruenspecht
Goto Top

Sind bestimmte Dateigruppen NICHT vorhenden?

Hallo zusammen,

für eine spezielle Bildumwandlung habe ich mir eine kleine Batch-Datei geschrieben. In dieser Batch-Datei gibt es eine Abfrage, die vom Sinn her etwa so aussieht:

FOR %%a in (*.abc *.xyz *.zzz) do (
        "tue irgendwas"  
)

Nun möchte ich erst gar nicht auf diese Befehlsabfolge auflaufen, wenn es überhaupt keine Dateigruppen mit der Endung "abc", "xyz" oder "zzz" gibt. In dem Fall möchte ich eine Fehlermeldung ausgeben.

OK, ich kann die Gruppe mit "If not exist" abfangen, aber dann muss ich für jede Gruppe eine eigene Zeile schreiben. Gibt es keine clevere Lösung? So wie in der o.a. For-Schleife?

Vielen Dank im voraus

Content-ID: 334822

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

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

132895
Lösung 132895 11.04.2017 aktualisiert um 13:30:20 Uhr
Goto Top
aber dann muss ich für jede Gruppe eine eigene Zeile schreiben.
Wieso, wenn du doch schon eine FOR-Schleife nutzt??
for %%a in (abc xyz zzz) do if not exist *.%%a echo Gruppe "%%a" nicht vorhanden!  
hauruck
Gruenspecht
Gruenspecht 11.04.2017 um 13:52:36 Uhr
Goto Top
Super! Danke für den SCHNELLEN Hinweis. Hatte auch so eine Schleife probiert, dort aber den Fehler gemacht, dass ich (*.abc *.xyz *.zzz) genommen habe. Das ging nicht.
Gruenspecht
Gruenspecht 11.04.2017 um 14:07:37 Uhr
Goto Top
Bei der Umsetzung ist mir noch eine Idee gekommen. Das Statement

for %%a in (abc xyz zzz) do if not exist *.%%a echo Gruppe "%%a" nicht vorhanden!  

gibt naturgemäß für jede Gruppe eine Einzelmeldung aus. Das ist soweit OK und genau richtig. Mir fehlt im Prinzip aber noch eine zusätzliche Sammelmeldung. Also, wenn gar keine Gruppe vorhanden ist, so was ganz anderes gemacht werden, als wenn nur eine Gruppe fehlt.
132895
Lösung 132895 11.04.2017 um 14:25:12 Uhr
Goto Top
Mach einfach einen Counter in der Schleife und zähl ihn hoch und vergleiche den am Ende mit der Gesamtanzahl.
Gruenspecht
Gruenspecht 11.04.2017 um 14:28:29 Uhr
Goto Top
JA DANKE ! Habe das schon gemacht. Springe bei Zahlerstand "null" entsprechend raus.

PS: Ich liebe dieses Forum!!! face-wink Die Anregungen sind immer SEHR hilfreich.