In einer Batchdatei eine Variable setzen und in anderer auslesen?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dafür gibt es verschiedene Möglichkeiten:

1. Wenn du die Batch erst nach der Variablendefinition aufrufen willst, kannst du die Variable als Argument übergeben und mit %1 darauf zugreifen:

set "Var=Text"
start "cmd.exe" "deinebatch.cmd" "%Var%"
echo %~1 gibt den Inhalt von Var ohne "" aus

2. Ist die für dich vermutlich beste Lösung. Du speicherst eine Variable in einer Textdatei "Datenbank" und liest die danach wieder aus:

set "Var=Text"
echo.%Var% > Var.txt
set /p Var=< Var.txt
echo %Var%

3. Dies geht auch mit mehreren Variablen in einer Batch, entweder indemm man mehr Variablen einzeln ausgibt:

echo Var1=%Var1% >> Data.txt
echo Var2=%Var2% >> Data.txt

oder indem man alle Variablen mit einem bestimmten Anfang ausgibt:

set Var > Data.txt

Einlesen muss man das dann mit einer For Schleife:

For /F "tokens=1* delims==" %%v in (Data.txt) do (
    set "%%v=%%w"
)

Hier mal ein Link wo das schon ganz gut beredet wurde:
https://www.gutefrage.net/frage/variablen-in-einer-datenbank-abspeichern-und-wieder-einlesen?foundIn=list-answers-by-user#answer-248065721

~Tim

Es gibt zwei Möglichkeiten:

Den Wert als Argument dem 2. Skript übergeben

Oder

Mit dem Befehl setx (Google danach) eine Systemweite Variable setzten.

Ehm die Absätze haben nicht ganz funktioniert!! Stellt sie euch einfach vor XD