CMD mehrere Variablen in einer .txt Datei speichern?
Ich habe mehrere Variabeln:
-Holz = 3
-Metall = 2
-usw.
Jetzt kommt mein Problem, ich möchte alle Variabeln in einer .txt Datei speichern in der es so aussehen soll
Holz: 3
Metall: 2
Diese Variabeln solle aber auch wieder abrufbar sein.
2 Antworten
Gleich im Voraus! : Batchvariablen sollten nie ein Minus,Plus,*,/ enthalten! Die RechenRoutine von set /a würde dies als Mathematisches Zeichen intepretieren und auf eine nicht vorhandene Variable zugreifen (böse Falle)
Am einfachsten geht das Speichern, wenn Du allen Variablen, welch Du speichern möchtest einen gemeinsamen Prefix voranstellst.
set "Irgendwas.x=Hallo"
set "Irgendwas.y=9"
set "Irgendwas.Player2.Wasser=9"
set "Irgendwas.Player2.Gras=Ich schmecke die Farben"
rem alle Irgendwas. anzeigen
set "Irgendwas."
rem oder spezieller Irgendwas.Player2.
set "Irgendwas.Player2."
...zeigt alle Variablen an, welche mit besagtem Namensteil beginnen.
- Das Speichern ist trivial indem Wir die Ausgabe einfach in eine Datei umleiten.
- vergiss den Doppelpunkt als Trenner zwischen VariablenName und Wert. (das verkompliziert das Einlesen nur!)
save.cmd
set "Mein.Holz=3"
set "Mein.Metall=2"
set "Mein.Wasser=26"
rem speichern
set "Mein.">"test.sav"
pause
Das einlesen geht fast ebenso einfach:
readVars.cmd
rem variablen aus Datei einlesen
for /f "usebackq tokens=*" %%a in ("test.sav") do set "%%a"
rem variablen anzeigen
set "mein."
pause
die harte Tour, wie Du es Dir vorgestellt hast:
...und das sind nur 3 Variablen (bei 20 Variablen für ein Spiel eine Tortur😱)
set "Holz=8"
set "Metall=6"
set "Wasser=7"
rem jede zu speichende Zeile einzeln zurechtbasteln und in die Datei schreiben
@(
echo Holz:%Holz%
echo MMetall:%Metall%
echo Wasser:%Wasser%
)>"test2.sav"
pause
wieder Zurückholen:
rem variablen aus Datei einlesen: Token 1 und den Rest am Doppelpunkt trennen und beide Teile mit einem "Gleich" dem set-befehl zuführen
for /f "usebackq tokens=1* delims=:" %%a in ("test2.sav") do set "%%a=%%b"
rem variablen anzeigen
echo Holz:%Holz%
echo Metall:%Metall%
echo Wasser:%Wasser%
pause
schreibe doch einfach mal das ganze in eine Batch...
test.cmd
set "Irgendwas.x=Hallo"
set "Irgendwas.y=9"
set "Irgendwas.Player2.Wasser=9"
set "Irgendwas.Player2.Gras=Ich schmecke die Farben"
rem alle Irgendwas. anzeigen
set "Irgendwas."
rem oder spezieller Irgendwas.Player2.
set "Irgendwas.Player2."
pause
.dann siehst du was die Kommandos tun...🥱
Probiere es mit
echo Holz: 3>>variablen.txt
diese kannst du dann mit einer For-Schleife abrufen. Falls du da Hilfe brauchst, guck dir ein Tutorial an, denn sonst schreibst du mir ab, aber verstehst es nicht...
LG
Habe dazu noch eine Frage
was meinst du damit genau, es wirt mir nicht Angezeigt