railroadrunner
Goto Top

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!

Content-Key: 392468

Url: https://administrator.de/contentid/392468

Printed on: April 25, 2024 at 17:04 o'clock

Mitglied: 137808
137808 Nov 12, 2018 updated at 12:46:40 (UTC)
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.
Member: Railroadrunner
Railroadrunner Nov 12, 2018 at 12:41:21 (UTC)
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.
Mitglied: 137808
137808 Nov 12, 2018 updated at 12:46:12 (UTC)
Goto Top
Small quotation mark error. It's corrected above.
Member: Railroadrunner
Railroadrunner Nov 12, 2018 at 13:26:26 (UTC)
Goto Top
Thanks!

I found the error!
It works.