If Verschachtelung - Wie weit kann mans treiben?
ich habe mal eine ganz simple Frage.
Ich habe festgestellt dass Batch ab einer bestimmten Menge
ineinander Geschachtelter IF-Abfragen abschmiert.
Ich ich habe ausser dem auch festgestellt, dass wenn man zu viele Befehle
inerhalb eines "IFs" plaziert, das Batch Skript abschmiert.
(Beides kann man allerdings verhindern in dem man einfach die Befehle
per Call :einsprungpunkt auslagert.)
Ich würde gerne wissen ob jemand weiß unter welchen Umständen ein Fehlerfreies
Batch-Skript inerhalb einer IF-Abfrage aussteigt.
Bzw. bei welcher Anzahl von Zeilen/Befehlen/Weiteren IF-Abfragen/Zeichen...
Rund um ... An welche Faktoren diese Abstürze gebunden sind.
Ich weiß, durch laaaaanges rumprobieren könnte ich dass VIELEICHT auch herausfinden,
aber ich habe nicht die Zeit und die Muße da rum zu probieren.
Ich verlange auch nicht dass sich jetzt jemand anders hinsetzt und das für mich
macht, sondern ich hoffe einfach dass jemand das schon irgendwoher weiß
und so nett ist sein Wissen mit mir zu teilen.
Gruß
BluBb_mADe
Content-ID: 157539
Url: https://administrator.de/contentid/157539
Ausgedruckt am: 21.11.2024 um 23:11 Uhr
ich bin bisher noch nicht an irgendwelche Grenzen von von Schleifenverschachtelungen gestoßen.
der einzige Nachteil ist, das man nicht auf den ersten Blick nachvollziehen kann, wo der Fehler bzw. die Fehlerhafte Proggrammierung vorliegt - wegen der Klammer die diese Befehle zu einer BefehlsZeile zusammenfasst.
bau genug "Echo's" und "Rem's" ein damit Du den Fehler genauer eingrenzen kannst.
und lass das ganze mit "@echo on" laufen.
wieviele IF - Schleifen hast Du denn verschachtelt?
Gruß Phil
if "%x%" == "%y%" (....
sonst - falls eine dieser Variablen im Vergleich nicht gesetzt ist (oder Leerzeichen; einige Sonderzeichen enthält) fasst IF in die Grütze.
Gruß Phil
erstens würde ich auf Delayed Expansion wechseln, da die viele Probleme umgeht.
z.B. Wenn in %vara% oder %varb% eine Klammer ) oder Hochkomma " drin ist, hat dein Skript sonst Probleme.
Bei deinen Skripten tritt bei mit kein Fehler auf, dazu müßte man mal die entsprechenden Inhalte der Varibalen sehen.
Weihnachtliche Grüße
jeb
steckt in vara oder varb eine ungerade Zahl doppelter Hochkommata (oder bei gerader Anzahl Hochkommata und dazwischen etwas wie & > < | etc ) solltest Du die Variable verzögert ausgeben - Du nutzt ja auch DelayedExpansion in dem Teil oder diese SonderZeichen Escapen mit ^.
hast Du mal die Batch ins CMD-Fenster gezogen um etwaige Meldungen lesen zu können?
zB. "..." kann syntaktisch an dieser Stelle nicht verarbeitet werden.
was steht in var3?
ist es nicht besser nach dem
wget ... ein &&( mache das auch )||(mache das als ersatz)
[Edit] etwas zu spät [/Edit]
Gruß Phil