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
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
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.
![](https://images.gutefrage.net/media/user/Modellbahni/1676798389316_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.png?v=1676798389000)
Wenn die Variable ist nicht 50 dann echo Falsch
2 Antworten
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
set /A var=50
if NOT %var%==50(
echo Falsch
)
![](https://images.gutefrage.net/media/user/Erzesel/1497339133085_nmmslarge__0_524_1080_1080_4b38ff31970de3b94deb6a27ca8a8f01.jpg?v=1497339133000)
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.