Batch Syntax ...

takidoso

Erfahrenes Mitglied
Halli und hallo,
also ich bin furchtbar ungeübt mit Batch programmierung (Windows-Systeme)
Ich habe mich im Netz schon bereits totgesucht für ein lumpiges beispiel, wie man eine Umgebungsvariable auf nicht existenz erfolgrech prüft und gegebenenfalls eine Fehelrmeldung ausgibt und rausspringt
also mit dem rausspringen und dem ECHO denke ich habe ich keine Probleme
Der Versuch die Variable abzufragen scheint icht richtig zu sein bei mir, was mache ich falsch:
das geht nicht
Code:
if meinevariable=="" goto NEED_VARIABLE_SET    

rem hier mach mal was 

GOTO END

:NEED_VARIABLE_SET
ECHO Bitte meinevariable setzen

:END
pause
das geht nicht
Code:
if meinevariable=='' goto NEED_VARIABLE_SET    

rem hier mach mal was 

GOTO END

:NEED_VARIABLE_SET
ECHO Bitte CURRENCYDISPO_INIPATH setzen

:END
pause
das geht nicht
Code:
if meinevariable==null goto NEED_VARIABLE_SET    

rem hier mach mal was 

GOTO END

:NEED_VARIABLE_SET
ECHO Bitte meinevariable setzen

:END
pause

Also irgendwas mache ich falsch wie geth es richtig?

für konstruktive Vorschläge sehr dankbar

Takidoso
 
Hi.

Variablen mußt du immer in Prozentzeichen einschliessen wenn du den Wert testen möchtest. Bsp:
Code:
if "x%COMSPEC%" == "x" set COMSPEC=command
Wenn die Variable COMSPEC leer oder nicht definiert ist, wird sie auf command gesetzt.

Gruß
 
hi deepthroat
danke für Deine schnell Antwort.
ich selbst dachte mir sowas auch schon irgendwie doch funktioniert es wohl auch nicht.
habe die besagte variable einfach mal mit lala belegt und bekam beim echo folgende Zeile, die ich auch irgendwie erwartet hatte ausgegeben

if lala == "lala" GOTO NEED_VARIABLE_SET

nur dumm ist, dass er patu nich in den Label springt, andererseits auch keinerlei Fehelrmeldung ausgibt.

muss ich vielleicht beim goto auf groß und kleinschreibung achten?
oder ist das bei XP alles anders?

Takidoso
 
ahhh nu habe ich es wohl begriffen, die "" werden mit verglichen
meine Güte irgendwie ahbe ich dafür noch nicht das richtige Gefühl

aber danke Dir
 
Hallo!

Ich mach das immer so:
Code:
@ECHO OFF
IF NOT "%MY_ENV_VAR%" == "" GOTO GOT_MY_ENV_VAR
   SET MY_ENV_VAR=4711
:GOT_MY_ENV_VAR
ECHO %MY_ENV_VAR%

Gruss Tom
 
Zurück