TruckerTom 10 Posted January 23, 2008 Report Posted January 23, 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? Quote
Cybquest 36 Posted January 23, 2008 Report Posted January 23, 2008 Es muss heissen: if "%variable%" == "" goto blabla Quote
TruckerTom 10 Posted January 23, 2008 Author Report Posted January 23, 2008 ok, Fehler gefunden: set variable=test if [color="Red"]"[/color]%variable%[color="Red"]"[/color] == "" goto blabla Quote
pacobay 10 Posted January 23, 2008 Report Posted January 23, 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 Quote
Kampfhase 10 Posted January 24, 2008 Report Posted January 24, 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. Quote
Biber 10 Posted January 24, 2008 Report Posted January 24, 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 Quote
Kampfhase 10 Posted January 24, 2008 Report Posted January 24, 2008 Ich widerrufe! (wenigstens teilweise...) Quote
pacobay 10 Posted January 24, 2008 Report Posted January 24, 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 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.