railroadrunner

Batch - Aufruf mit Parameter und set-Befehl

Hallo,
ich habe ein Problem mit einem Skript, wo ich nicht weiterkomme.

Es soll eine Batch (test.bat) aufgerufen werden.
Je nachdem ob ein bestimmtes Wort (ECSCAD) als Parameter folgt oder nicht, soll eine neue Variable gesetzt werden.

Skript:

@echo off
set var_in="%~1"

if %var_in%.=="ECSCAD". (
echo No parameters have been provided.
set variante=A
echo %variante%
) else (
echo Parameters: %*
set variante=B
echo %variante%
)


Ausgabe:

D:\>test.bat
Parameters:
ECHO ist ausgeschaltet (OFF).

bzw.

D:\>test.bat ECSCAD
No parameters have been provided.
ECHO ist ausgeschaltet (OFF).
D:\>

Offensichtlich wird "Set" nicht ausgeführt und die Variable "variante" nicht definiert. Somit kommt die ECHO OFF-Meldung.

Wie kann man hier Abhilfe schaffen?
Vielen Dank für eure Hilfe!
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 392468

Url: https://administrator.de/forum/batch-aufruf-mit-parameter-und-set-befehl-392468.html

Ausgedruckt am: 03.05.2025 um 12:05 Uhr

137808
137808 12.11.2018 aktualisiert um 13:46:40 Uhr
Goto Top
This is because you ar not using delayed expansion when you set a variable inside braces!
@echo off &setlocal ENABLEDELAYEDEXPANSION
set "var_in=%~1"  

if /i "%var_in%" == "ECSCAD" (  
echo ECSCAD Parameter has been provided.
set variante=A
echo !variante!
) else (
echo Parameters: %*
set variante=B
echo.!variante!
)
But you actually don't need it if you do it like this
@echo off
set "var_in=%~1"  

if /i "%var_in%" == "ECSCAD" (  
echo ECSCAD Parameter has been provided.
set variante=A
) else (
echo Parameters: %*
set variante=B
)
echo.%variante%
Regards.
Railroadrunner
Railroadrunner 12.11.2018 um 13:41:21 Uhr
Goto Top
Thanks,

but this solves only one Problem.

Output of your script:

D:\>test.bat
Parameters: <-- right
B <-- right

D:\>test.bat ECSCAD
Parameters: ECSCAD <-- wrong, right: "ECSCAD Parameter has been provided."
B <-- wrong, right: "A"

D:\>

Could you help me, too?
Thanks.
137808
137808 12.11.2018 aktualisiert um 13:46:12 Uhr
Goto Top
Small quotation mark error. It's corrected above.
Railroadrunner
Railroadrunner 12.11.2018 um 14:26:26 Uhr
Goto Top
Thanks!

I found the error!
It works.