TruckerTom 10 Geschrieben 23. Januar 2008 Melden Teilen Geschrieben 23. Januar 2008 ich habe folgenden Code: set variable=test if %variable% == "" goto blabla Da bekomme ich die Meldung ""Goto" ist syntaktisch an dieser Stelle nicht verarbeitbar". Was für einen Denkfehler habe ich? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 23. Januar 2008 Melden Teilen Geschrieben 23. Januar 2008 Es muss heissen: if "%variable%" == "" goto blabla Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 23. Januar 2008 Autor Melden Teilen Geschrieben 23. Januar 2008 ok, Fehler gefunden: set variable=test if [color="Red"]"[/color]%variable%[color="Red"]"[/color] == "" goto blabla Zitieren Link zu diesem Kommentar
pacobay 10 Geschrieben 23. Januar 2008 Melden Teilen Geschrieben 23. Januar 2008 Hallo TruckerTom, ok, Fehler gefunden: set variable=test if [color="Red"]"[/color]%variable%[color="Red"]"[/color] == "" goto blabla Also "%variable%" löst zwar formal Dein problem (Keine Fehlermeldung) Aber durch die Hochkomma machst du aus der Variable eine string also text und ich denke mir Du willst wohl eher den inhalt der Variablen vergleichen und nicht diesen text Könnte mir daher vorstellen, dass Du eher sowas wie in der folgenden test.bat erreichen willst: ciao pacobay set variable=test if %variable% == test goto istgleich goto istnichtgleich :istgleich echo %variable% echo wenn du das siehst dann alles ok GOTO END :istnichtgleich Echo wenn du das siehst dann war es wohl nicht ok echo denn sonst wärst Du nie hier gelandet GOTO END :END pause Quit Zitieren Link zu diesem Kommentar
Kampfhase 10 Geschrieben 24. Januar 2008 Melden Teilen Geschrieben 24. Januar 2008 Hallo pacobay, das ist so nicht richtig. In einer DOS-Batchdatei sind die " ganz normale Zeichen. Trucker Toms Variante fragt ab, ob %variable% ohne Inhalt ist. Lässt man dabei die " weg, gibt es eine Fehlermeldung. Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 24. Januar 2008 Melden Teilen Geschrieben 24. Januar 2008 Hmm, Kampfhase, auch das ist nicht ganz richtig (aber richtiger als pacobays Kommentar). *g Die Anführungszeichen sind nicht ganz "ganz normale Zeichen" am CMD-Prompt. Einige Fehler kann ich nur abfangen, wenn die zu prüfende Variable in Anfü-Zeichen eingeschlossen ist, z.b. den Fall, dass in der %variablen% ein wert mit Leerzeichen steht. (=11:41:23 D:\temp=)>set test=eins 2 drei>if "%test%==eins @echo halloSyntaxfehler.(=11:41:58 D:\temp=)>if "%test%"=="eins" @echo hallo(=11:42:03 D:\temp=)>echo if "%test%"=="eins" @echo halloif "eins 2 drei"=="eins" @echo hallo(=11:42:12 D:\temp=)>echo if [%test%]==[eins] @echo halloif [eins 2 drei]==[eins] @echo hallo(=11:42:33 D:\temp=)>if [%test%]==[eins] @echo hallo"2" ist syntaktisch an dieser Stelle nicht verarbeitbar.(=11:42:40 D:\temp=)>if "%test%"=="eins" @echo hallo[/Code] --> Anführungszeichen sind schon "besondere Zeichen", was zu beweisen war. Grüße Biber Zitieren Link zu diesem Kommentar
Kampfhase 10 Geschrieben 24. Januar 2008 Melden Teilen Geschrieben 24. Januar 2008 Ich widerrufe! (wenigstens teilweise...) Zitieren Link zu diesem Kommentar
pacobay 10 Geschrieben 24. Januar 2008 Melden Teilen Geschrieben 24. Januar 2008 ups voll rein getappt :( Klar ist ja Dos und da läuft es mit den Hochkommas ja wieder anders :rolleyes: :thumb1: Danke für die Korrektur meines ... pacobay Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.