gelöst 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?
set Name = HKLM\Software\EinSpiel\Name
Nur dann heißt %Name% eben HKLM\Software\EinSpiel\Name. Gibts da ne Möglichkeit?
4 Antworten
- LÖSUNG VW schreibt am 21.03.2010 um 16:44:12 Uhr
- LÖSUNG Manny1988 schreibt am 23.03.2010 um 10:58:35 Uhr
- LÖSUNG Biber schreibt am 23.03.2010 um 11:10:20 Uhr
- LÖSUNG Manny1988 schreibt am 23.03.2010 um 12:35:06 Uhr
- LÖSUNG Biber schreibt am 23.03.2010 um 11:10:20 Uhr
- LÖSUNG Manny1988 schreibt am 23.03.2010 um 10:58:35 Uhr
LÖSUNG 21.03.2010 um 16:44 Uhr
LÖSUNG 23.03.2010 um 10:58 Uhr
Zitat von VW:
Moin,
ist Wert aus Registry in Variable schreiben nicht genau das, was du suchst?
MfG,
VW
Moin,
ist Wert aus Registry in Variable schreiben nicht genau das, was du suchst?
MfG,
VW
Danke für die schnelle Antwort
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
LÖSUNG 23.03.2010 um 11:10 Uhr
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"
Biber
LÖSUNG 23.03.2010 um 12:35 Uhr
WoW, danke für die Antwort Das hat mir sehr geholfen :D
Ähnliche Inhalte
Neue Wissensbeiträge
Heiß diskutierte Inhalte