schubidu was
unexpected at this time.
Was ist hier passiert?
Nun, schauen wir den folgenden Code an:ECHO-Befehl
aufhört? Richtig, gerade vor der schließenden Klammer. Umgeschrieben auf
mehrere Zeilen:
IF-Block eine schließende Klammer ausgeben
möchte (vielleicht als Teil eines Smileys)?Eine relativ naheliegende Idee wäre
folgende:
ECHO sagt
uns, dass es die ganze Zeile ausgibt, solange da nicht Kram wie & oder >
dazwischenkommt. Und gebe ich auf der Kommandozeile ECHO :-) ein,
funktioniert das auch problemlos. In diesem IF-Block gibt
es allerdings einen Fehler:
*/ einen
Kommentar in C beendet. Das Verhalten, was cmd hier an den Tag legt, ist
sicherlich für einzeilige IFs sinnvoll, aber in meinen Augen eher
nervig, wenn man das mehrzeilig macht.Nun, da wir wissen, wonach wir Ausschau
halten müssen, wäre es nett zu wissen, wie man das in Zukunft vermeidet. Meine
erste Idee wäre, das Innere des Blockes in ein Unterprogramm zu verlegen:
^, also sähe der Code folgendermaßen
aus:
Wenn man hingegen eine Variable hat, die Klammern enthält (zum Beispiel das Programme-Verzeichnis für 32-bit-Anwendungen auf 64-bit-Systemen), dann muß man entweder verzögerte Variablenauswertung (delayed expansion) nutzen oder aber Unterprogramme.
Dinge, die man hieraus lernen kann: Das Escapezeichen funktioniert grundsätzlich überall in Batchdateien. Jedes Zeichen kann man damit an möglichen Syntaxfehlern vorbeikriegen.
Kommentare
Neuen Kommentar abgeben