manny1988
Goto Top

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?

Content-ID: 138775

Url: https://administrator.de/forum/variable-in-batch-aus-regediteintrag-138775.html

Ausgedruckt am: 26.12.2024 um 14:12 Uhr

36831
36831 21.03.2010 um 16:44:12 Uhr
Goto Top
Moin,

ist Wert aus Registry in Variable schreiben nicht genau das, was du suchst?

MfG,
VW
Manny1988
Manny1988 23.03.2010 um 10:58:35 Uhr
Goto Top
Zitat von @36831:
Moin,

ist Wert aus Registry in Variable schreiben nicht genau das, was du suchst?

MfG,
VW

Danke für die schnelle Antwort face-smile

Ja, das ist schon in die Richtung, das einzige Problem was ich noch habe: Wenn ich eine Variable gesetzt habe, kann ich sie mit Echo nicht aufrufen. 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 face-smile
Biber
Biber 23.03.2010 um 11:10:20 Uhr
Goto Top
Moin Manny1988,

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 face-smile

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
Noch guter:
Set "var=Test"

Grüße
Biber
Manny1988
Manny1988 23.03.2010 um 12:35:06 Uhr
Goto Top
WoW, danke für die Antwort face-smile Das hat mir sehr geholfen :D