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-Key: 138775

Url: https://administrator.de/contentid/138775

Printed on: April 18, 2024 at 05:04 o'clock

Mitglied: 36831
36831 Mar 21, 2010 at 15:44:12 (UTC)
Goto Top
Moin,

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

MfG,
VW
Member: Manny1988
Manny1988 Mar 23, 2010 at 09:58:35 (UTC)
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
Member: Biber
Biber Mar 23, 2010 at 10:10:20 (UTC)
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
Member: Manny1988
Manny1988 Mar 23, 2010 at 11:35:06 (UTC)
Goto Top
WoW, danke für die Antwort face-smile Das hat mir sehr geholfen :D