In einer Batchdatei eine Variable setzen und in anderer auslesen?
Ist es möglich in ein Batchprogramm eine Variable zu schreiben, die ich in einem anderen Batchprogramm auslesen kann? Mit diesen Code geht es auf jeden Fall nicht:
-
Programm:
-
Programm:
@echo off
echo %var%
pause
3 Antworten
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