Batch Variablen zusammenfügen und Wert ausgeben
Moin,
Folgendes Problem: ich habe eine Variable die den Wert x1y1 bestitzt
set var1=x1y1
set a=var
set b=1
Wie kann ich nun die beiden Variablen zusammmensetzen, sodass aber der Wert der Variable var1 angezeigt wird?
echo % %a%%b% %
Hier sollte x1y1 ausgegeben werden aber das funzt nicht.
Folgendes Problem: ich habe eine Variable die den Wert x1y1 bestitzt
set var1=x1y1
set a=var
set b=1
Wie kann ich nun die beiden Variablen zusammmensetzen, sodass aber der Wert der Variable var1 angezeigt wird?
echo % %a%%b% %
Hier sollte x1y1 ausgegeben werden aber das funzt nicht.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 195702
Url: https://administrator.de/forum/batch-variablen-zusammenfuegen-und-wert-ausgeben-195702.html
Ausgedruckt am: 25.04.2025 um 12:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo Eissssbaer,
ich verstehe dein Problem nicht ganz.
ich versuchs es mal nachzuvollziehen:
Die Lösung für den ersten Teil der Frage:
Den zweiten Teil versteh ich nicht.
Bitte formuliere dein Problem präziser!
MfG
Batch-Lord
ich verstehe dein Problem nicht ganz.
ich versuchs es mal nachzuvollziehen:
Die Lösung für den ersten Teil der Frage:
@echo off
set a=var
Echo %a%
:: Ausgabe: var
set b=1
Echo %b%
:: Ausgabe: 1
:: Vlt. so?
set c=%a%%b%
Echo %c%
:: Augabe: var1
Den zweiten Teil versteh ich nicht.
@echo off
set var1=x1y1
Echo %var1%
::Ausgabe: x1y1
:: Was willst du zusammensetzen???
Bitte formuliere dein Problem präziser!
MfG
Batch-Lord
Hallo Eissssbaer,
kann auch an mir liegen
bin früh raus und Müde. Zurück zum Thema:
Ich hoffe, das ich das dieses mal geschnallt habe!
Wenn ja, wozu soll das denn gut sein?
MfG
Batch-Lord
kann auch an mir liegen
@echo off
set var1=123
set a=1
set b=var
set %b%%a%=%var1%
::oder mit Überprüfung
if "%b%%a%"="var1" set %b%%a%=%var1%
Echo %var1%
::Ausgabe: 123
Ich hoffe, das ich das dieses mal geschnallt habe!
Wenn ja, wozu soll das denn gut sein?
MfG
Batch-Lord
moin Eissssbaer,
entweder im Call mit doppelter Prozenzeichen Auflösen oder mit verzögerter Auflösung in Ausrufezeichen setzen
Erläuterung: im Call werden doppelte Prozentzeichen zu einem Aufgelöst, die Variablen in Prozentzeichen werden aufgelöst und zum Schluss werden die Prozentzeichen, welche voher doppelt waren zum Auflösen des übriggebliebenen Variablennamens verwendent.
Beim Ausrufezeichen wird dieses zum Schluss - also wärend der engultigen Darstellung aufgelöst.
Dazu hat @jeb-the-batcher auch ein paar Secrets aufgedeckt.
Gruß Phil
entweder im Call mit doppelter Prozenzeichen Auflösen oder mit verzögerter Auflösung in Ausrufezeichen setzen
set foo=a
set bar=1
set a1=x
set a2=y
set a3=z
call echo %%%foo%%bar%%%
setlocal enabledelayedexpansion
echo !%foo%%bar%!
for /l %%i in (1 1 3) do echo !%foo%%%i!
pause
Beim Ausrufezeichen wird dieses zum Schluss - also wärend der engultigen Darstellung aufgelöst.
Dazu hat @jeb-the-batcher auch ein paar Secrets aufgedeckt.
Gruß Phil
Hallo Batch-Lord,
eine Variable im Batch kann nicht mit einer Zahl anfangen, da die Batchparamter %0-%9 vor der Varible %0abc% - %9abc%
aufgelöst werden.
Biber hatte mal ein Special gepostet, wobei die Batchparameter den Ausgaben entsprechen:
Gruß Phil
eine Variable im Batch kann nicht mit einer Zahl anfangen, da die Batchparamter %0-%9 vor der Varible %0abc% - %9abc%
aufgelöst werden.
Biber hatte mal ein Special gepostet, wobei die Batchparameter den Ausgaben entsprechen:
echo %1a%
call :sub %%1 %%2 %%3 %%4 %%5 %%6 %%7
exit /b
:sub
echo %2