For Schleife Dateien prüfen
Hallo zusammen,
ich habe folgende Situation.
ich möchte mit folgender Batch Datei überprüfen, ob die Datei: HST.EMP in den Verzeichnissen vorhanden ist. Wenn ja, sollen die HST.EMP Dateien mithilfe von 7zip komprimiert werden.
@echo off
set programpath=C:\Programme\7-Zip
set ordner=C:\send
for /l %%a in (401,1,450) do (
if not exist "%ordner%\%%a\HST.EMP" goto end
if exist "%ordner%\%%a\HST.EMP" goto compress
)
:compress
for /l %%a in (401,1,405) do "%programpath%\7z" a "%ordner%\%%a\HST.7z" "%ordner%\%%a\HST.EMP"
:end
exit
Die HST.EMP Dateien liegen in folgender Struktur:
C:\send\401\HST.EMP
C:\send\402\HST.EMP
C:\send\403\HST.EMP
C:\send\404\HST.EMP
C:\send\405\HST.EMP
usw...
Jetzt funktioniert die if not Exist Abfrage aber nicht. Das heisst, er versucht trotzdem etwas zu komprimiere, obwohl diese Datei nicht in dem Verzeichniss z.B. 402 liegt.
Ich möchte also, dass die Verzeichnisse übersprungen werden, wo keine HST.EMP enthalten ist.
Bin ich auf dem Holzweg oder mache ich einen Dankfehler?
Über etwas Hilfe würde ich mich freuen.
Nachtrag:
Mit diesem vereinfachten Code habe ich das Problem, dass er die komprimierung nur startet, wenn in beiden Verzeichnissen, also in 401 und 402 die HST.EMP Datei enthalten ist.
Was mache ich falsch?
ich habe folgende Situation.
ich möchte mit folgender Batch Datei überprüfen, ob die Datei: HST.EMP in den Verzeichnissen vorhanden ist. Wenn ja, sollen die HST.EMP Dateien mithilfe von 7zip komprimiert werden.
@echo off
set programpath=C:\Programme\7-Zip
set ordner=C:\send
for /l %%a in (401,1,450) do (
if not exist "%ordner%\%%a\HST.EMP" goto end
if exist "%ordner%\%%a\HST.EMP" goto compress
)
:compress
for /l %%a in (401,1,405) do "%programpath%\7z" a "%ordner%\%%a\HST.7z" "%ordner%\%%a\HST.EMP"
:end
exit
Die HST.EMP Dateien liegen in folgender Struktur:
C:\send\401\HST.EMP
C:\send\402\HST.EMP
C:\send\403\HST.EMP
C:\send\404\HST.EMP
C:\send\405\HST.EMP
usw...
Jetzt funktioniert die if not Exist Abfrage aber nicht. Das heisst, er versucht trotzdem etwas zu komprimiere, obwohl diese Datei nicht in dem Verzeichniss z.B. 402 liegt.
Ich möchte also, dass die Verzeichnisse übersprungen werden, wo keine HST.EMP enthalten ist.
Bin ich auf dem Holzweg oder mache ich einen Dankfehler?
Über etwas Hilfe würde ich mich freuen.
Nachtrag:
@echo off
set programpath=C:\Programme\7-Zip
set ordner=C:\send
for /l %%a in (401,1,402) do if not exist "%ordner%\%%a\HST.EMP" goto end
for /l %%a in (401,1,402) do "%programpath%\7z" a "%ordner%\%%a\HST.7z" "%ordner%\%%a\HST.EMP"
:end
exit
Mit diesem vereinfachten Code habe ich das Problem, dass er die komprimierung nur startet, wenn in beiden Verzeichnissen, also in 401 und 402 die HST.EMP Datei enthalten ist.
Was mache ich falsch?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127308
Url: https://administrator.de/forum/for-schleife-dateien-pruefen-127308.html
Ausgedruckt am: 19.05.2025 um 08:05 Uhr
5 Kommentare
Neuester Kommentar
Moin rcorten,
willkommen im Forum
Deine Abfrage funktioniert natürlich as designed, nur hast du etwas anderes gemeint.
Deine Abfrage: Wenn in einem einzigen der abgeklapperten Verzeichnisse die Datei nicht existiert, dann GOTO END.
--> Übersetzt: In ALLEN Verzeichnissen muss diese Datei da sein, sonst passiert gar nix.
Bastlas Abfrage: Hey, in JEDEM Verzeichnis, in dem du watt findest: Zip den Kram.
Ist schon ein gewisser Unterschied.
Ich mein nur, falls es dich doch interessiert...
Grüße
Biber
[Edit] Moin bastla, sorry, ich hatte wieder nicht in den rechten Aussenspiegel geschaut...
Schönes Wochenende
Biber
[/Edit]
willkommen im Forum
Zitat von @rcorten:
Aber kannst du mir auch erklären, warum meine Abfrage nicht funktioniert?
Ist aber auch egal...
ja watt nu?Aber kannst du mir auch erklären, warum meine Abfrage nicht funktioniert?
Ist aber auch egal...
Deine Abfrage funktioniert natürlich as designed, nur hast du etwas anderes gemeint.
Deine Abfrage: Wenn in einem einzigen der abgeklapperten Verzeichnisse die Datei nicht existiert, dann GOTO END.
--> Übersetzt: In ALLEN Verzeichnissen muss diese Datei da sein, sonst passiert gar nix.
Bastlas Abfrage: Hey, in JEDEM Verzeichnis, in dem du watt findest: Zip den Kram.
Ist schon ein gewisser Unterschied.
Ich mein nur, falls es dich doch interessiert...
Grüße
Biber
[Edit] Moin bastla, sorry, ich hatte wieder nicht in den rechten Aussenspiegel geschaut...
Schönes Wochenende
Biber
[/Edit]