If not %Variable% - CMD?
Hallo!
Gibt es eine Möglichkeit, in einer .bat-Datei zu überprüfen ob die Variable NICHT echo ist?
Beispiel: If %Variable% ist nicht echo echo Super
Was meinst du mit nicht echo? Echo ist ein Befehl und keine Eigenschaft einer Variable.
Du kannst nur das Command echo mit @echo off abschalten.
Wenn die Variable ist nicht 50 dann echo Falsch
2 Antworten
set /A var=50
if NOT %var%==50(
echo Falsch
)
Speichere Batchdateien unter Windows nicht als .bat ! ...sondern als .cmd
(die Gründe hier darzulegen würde den Rahmen sprengen ---Buggy Errormanangemet Emulation in .bat)
demo.cmd
if not defined MeineVariable echo die gibt es nicht!
if "%MeineVariable%"=="" echo die gibt es nicht!
if "%MeineVariable%" equ "" echo die gibt es nicht!
rem Umkehrung prüfen ob eine Variable irgendeinen Wert enhällt
set "MeineVariable=irgendwas"
if defined MeineVariable echo die gibt es juhu...
if "%MeineVariabl%e" neq "" echo die gibt es juhu...
pause
allerdings geht die Prüfung in die Hose, wenn sich Leerzeichen in die Variable mogeln:
rem siehst Du das Leerzeichen hinter dem "=" ?
set MeineVariable=
if not defined MeineVariable echo die gibt es juhu...
if "%MeineVariable%"=="" echo die gibt es juhu...
if "%MeineVariable%" equ "" echo die gibt es juhu...
rem aber das geht trotzdem schief
echo %MeineVariable%
rem aber das geht (macht nur eine Leerzeile)
echo:%MeineVariable%
echo:%VariableDieNichtExistiert%
pause
man kann natürlich auf das Vorhandensein von Leerzeichen Testen.
rem variable mit beliebiger anzahl Spaces
set "MeineVariable= "
set "Test=%MeineVariable: =%" &rem entferne alle Leerzeichen und versuch %test% zu erzeugen
if defined MeineVariable echo die gibts
if "%Test%"=="" echo MeineVariable existiert nicht oder enthielt nur Leerzeichen
if "%MeineVariable%" neq "%Test%" echo MeineVariable enthielt leerzeichen (aber vielleicht auch andere Buchstaben)
if "%Test%"=="" if "%MeineVariable%" neq "%Test%" echo MeineVariable enthielt nur Leerzechen
pause
Wenn ich dir einen guten Rat geben kann, vergiss Batch !
Lerne lieber Powershell, das ist die Zukunft der ConsolScripts unter Windows.