Variable erweitern
Hi,
Ich würde gerne eine variable erweitern, z.b. so:
if %a_inst% == 1 set variable=A
if %b_inst% == 1 set variable=B
if %C_inst% == 0 set variable=C
dann muss am Ende Variable = "A B" sein
if %a_inst% == 1 set variable=A
if %b_inst% == 0 set variable=B
if %C_inst% == 1 set variable=C
dann muss am Ende Variable = "A C" sein
Kann mir da jemand helfen, muss ich set mit einem Parameter starten?
Danke!
Ich würde gerne eine variable erweitern, z.b. so:
if %a_inst% == 1 set variable=A
if %b_inst% == 1 set variable=B
if %C_inst% == 0 set variable=C
dann muss am Ende Variable = "A B" sein
if %a_inst% == 1 set variable=A
if %b_inst% == 0 set variable=B
if %C_inst% == 1 set variable=C
dann muss am Ende Variable = "A C" sein
Kann mir da jemand helfen, muss ich set mit einem Parameter starten?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237085
Url: https://administrator.de/contentid/237085
Ausgedruckt am: 24.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo zensbert.
Ich nehme an du willst immer mit 1 vergleichen.
Teste:
Grüße
rubberman
Ich nehme an du willst immer mit 1 vergleichen.
Teste:
@echo off &setlocal
set /a "a_inst=1, b_inst=1, c_inst=0"
set "variable="
setlocal EnableDelayedExpansion
for %%i in (A B C) do if !%%i_inst! == 1 set "variable=!variable!%%i "
endlocal &set "variable=%variable:~,-1%"
echo %variable%
pause
rubberman
Hallo zensbert.
In diesem Fall solltest du die Logik deiner Variablennamen umkehren. Also statt cado_inst, inst_cado verwenden. Dann kannst du mit einer FOR /F Schleife über die Kommandozeile
laufen und die Ausgabe verarbeiten.
Grüße
rubberman
In diesem Fall solltest du die Logik deiner Variablennamen umkehren. Also statt cado_inst, inst_cado verwenden. Dann kannst du mit einer FOR /F Schleife über die Kommandozeile
set inst_
laufen und die Ausgabe verarbeiten.
@echo off &setlocal
set /a "inst_cado=1, inst_cfox=1, inst_coop=0"
set "variable="
setlocal EnableDelayedExpansion
for /f "tokens=1* delims==" %%i in ('set inst_') do (
if %%j==1 for /f "tokens=1* delims=_" %%k in ("%%i") do set "variable=!variable!%%l "
)
endlocal &set "variable=%variable:~,-1%"
echo %variable%
pause
rubberman