Variable in Batch aus Regediteintrag
Schönen guten Tag,
ich bin mir bewusst das man mittels Batch z.b. sagen kann: set Variable = 1. Jetzt hat die Variable den Wert 1, jedoch möchte ich z.b. sagen, set Variable = KKLM\Software\EinSpiel\Nummer.
Im Regedit Eintrag steht dann z.b. eine 1, und die Batch übernimmt immer den momentanen Wert des Regedit Eintrags. Ist das möglich? Ich möchte nämlich per Parameter bei einem Spiel einloggen. Die Parameter beim Spiel sind dann Spiel.exe -login "Name|Passwort" und in der Batch soll dann eben stehen Spiel.exe -login "%Variable1%|%Variable2%", sodass eben abhängig vom Regedit Eintrag ein anderer Name und ein anderes Passwort gewählt wird.
set Name = HKLM\Software\EinSpiel\Name
Nur dann heißt %Name% eben HKLM\Software\EinSpiel\Name. Gibts da ne Möglichkeit?
ich bin mir bewusst das man mittels Batch z.b. sagen kann: set Variable = 1. Jetzt hat die Variable den Wert 1, jedoch möchte ich z.b. sagen, set Variable = KKLM\Software\EinSpiel\Nummer.
Im Regedit Eintrag steht dann z.b. eine 1, und die Batch übernimmt immer den momentanen Wert des Regedit Eintrags. Ist das möglich? Ich möchte nämlich per Parameter bei einem Spiel einloggen. Die Parameter beim Spiel sind dann Spiel.exe -login "Name|Passwort" und in der Batch soll dann eben stehen Spiel.exe -login "%Variable1%|%Variable2%", sodass eben abhängig vom Regedit Eintrag ein anderer Name und ein anderes Passwort gewählt wird.
set Name = HKLM\Software\EinSpiel\Name
Nur dann heißt %Name% eben HKLM\Software\EinSpiel\Name. Gibts da ne Möglichkeit?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 138775
Url: https://administrator.de/forum/variable-in-batch-aus-regediteintrag-138775.html
Ausgedruckt am: 26.12.2024 um 14:12 Uhr
4 Kommentare
Neuester Kommentar
Moin Manny1988,
Das liegt daran, das für den CMD-Interpreter beim Setzen einer Variablen ALLES vor dem Gleichheitszeichen zum Variablennamen gehört.
Auch das (in anderen Skriptsprachen weggerenderte) Leerzeichen.
Bedeutet: Mit der Zeile "set Var = Test" setzt du die Variable %VarLEERZEICHEN% und weist dieser den Wert "LEERZEICHENTest" zu.
Eine Variable %Var%, die du in der Zeile danach abfragst, gibt es natürlich nicht, da du keine gesetzt hast und außer dir gerade niemand anders am Variablensetzen war.
Also am CMD/im Batch KEINE optisch gefälligen Leerzeichen mehr vor oder hinter den SET-Zuweisungs-Gleichheitszeichen verwenden.
Guter:
Noch guter:
Grüße
Biber
Zitat von @Manny1988:
... Wenn ich beispielsweise sage
set Var = Test
echo %Var%
dann steht da nie Test, immer %Var%. Gibt es darauf noch eine gute Antwort? Wäre sehr dankbar
... Wenn ich beispielsweise sage
set Var = Test
echo %Var%
dann steht da nie Test, immer %Var%. Gibt es darauf noch eine gute Antwort? Wäre sehr dankbar
Das liegt daran, das für den CMD-Interpreter beim Setzen einer Variablen ALLES vor dem Gleichheitszeichen zum Variablennamen gehört.
Auch das (in anderen Skriptsprachen weggerenderte) Leerzeichen.
Bedeutet: Mit der Zeile "set Var = Test" setzt du die Variable %VarLEERZEICHEN% und weist dieser den Wert "LEERZEICHENTest" zu.
Eine Variable %Var%, die du in der Zeile danach abfragst, gibt es natürlich nicht, da du keine gesetzt hast und außer dir gerade niemand anders am Variablensetzen war.
Also am CMD/im Batch KEINE optisch gefälligen Leerzeichen mehr vor oder hinter den SET-Zuweisungs-Gleichheitszeichen verwenden.
Guter:
Set Var=Test
Set "var=Test"
Grüße
Biber