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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
4 Kommentare
Neuester Kommentar

This is because you ar not using delayed expansion when you set a variable inside braces!
But you actually don't need it if you do it like this
Regards.
@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!
)
@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%

Small quotation mark error. It's corrected above.