Ersetzen von leeren Parametern mittels CMD
Hi zusammen,
ich habe derzeit ein Problem beim ersetzen von leeren Parametern in einem Bat File die ich mittels CMD übergebe.
Der Aufruf sieht wie folgt aus.
meinecmd.bat 1 1 "leer" "leer" (Das "leer" soll symbolisieren das hier theoretisch auch 0 bzw 1 stehen könnte.
Die Abfrage in der bat sieht nun wie folgt aus.
Gebe ich das ganze jetzt allerdings via Echo zurück bekomme ich in der cmd folgende Ausgabe:
Hat irgendwer eine Idee wie ich diese Fehler umgehen kann? Sprich wenn die Werte nicht gesetzt sind sie in der bat setzen kann?
Mfg Patrick
ich habe derzeit ein Problem beim ersetzen von leeren Parametern in einem Bat File die ich mittels CMD übergebe.
Der Aufruf sieht wie folgt aus.
meinecmd.bat 1 1 "leer" "leer" (Das "leer" soll symbolisieren das hier theoretisch auch 0 bzw 1 stehen könnte.
Die Abfrage in der bat sieht nun wie folgt aus.
if not defined %4 ( set /a %4=0 )
if not defined %3 ( set /a %3=0 )
if not defined %2 ( set /a %2=0 )
if not defined %1 ( set /a %1=0 )
echo this is 1 %1 .
echo this is 2 %2 .
echo this is 3 %3 .
echo this is 4 %4 .
Gebe ich das ganze jetzt allerdings via Echo zurück bekomme ich in der cmd folgende Ausgabe:
E:\cmd>if not defined ( set /a =0 )
Fehlender Operand
E:\cmd>if not defined ( set /a =0 )
Fehlender Operand
E:\cmd>if not defined 1 (set /a 1=0 )
Fehlender Operator
E:\cmd>if not defined 1 (set /a 1=0 )
Fehlender Operator
Hat irgendwer eine Idee wie ich diese Fehler umgehen kann? Sprich wenn die Werte nicht gesetzt sind sie in der bat setzen kann?
Mfg Patrick
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 366770
Url: https://administrator.de/contentid/366770
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
2 Kommentare
Neuester Kommentar
Du kannst die Parametervariablen (%0 bis %9) nur auslesen, nicht setzen.
Außerdem ist if defined / if not defined etwas Buggy:
Da %0 nichts ist, sieht die CMD nur if not defined und meckert deswegen einen fehlenden Operanden an. Was immer MS da auch gedacht hat.
Was geht wäre sowas (Übernahme in eigene Variable x):
Außerdem ist if defined / if not defined etwas Buggy:
Da %0 nichts ist, sieht die CMD nur if not defined und meckert deswegen einen fehlenden Operanden an. Was immer MS da auch gedacht hat.
Was geht wäre sowas (Übernahme in eigene Variable x):
set x=%1
if [%1]== set x=0
echo %x%