Registry wert in System Variable hinzufügen
Hi Leute
Ich möchte in Windows XP einen Registry wert Auslesen und in eine System Variable schreiben. Hat jemand einen Tipp wie das gehen könnte?
Vielen Dank
Ich möchte in Windows XP einen Registry wert Auslesen und in eine System Variable schreiben. Hat jemand einen Tipp wie das gehen könnte?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator Biber am 13.07.2010 um 20:53:46 Uhr
Verschoben von "Windows glaub ich" nach "Batch & Shell".
Content-ID: 146825
Url: https://administrator.de/contentid/146825
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
10 Kommentare
Neuester Kommentar
Moin Tom2011,
Bei einigen Hex-Werten oder bei REG_EXPAND_SZ wird es sonst ein bisschen holzig...
Und verzeih mir meine laienhafte Frage: WTF ist eine System Variable?
Und soll mit dieser System Variable irgendetwas passieren oder lassen wir die erstmal im System rumhängen?
Grüße
Biber
Ich möchte in Windows XP einen Registry wert Auslesen und in eine System Variable schreiben.
Einen bestimmten? Oder egal welchen - geht es mehr um die Technik?Bei einigen Hex-Werten oder bei REG_EXPAND_SZ wird es sonst ein bisschen holzig...
Und verzeih mir meine laienhafte Frage: WTF ist eine System Variable?
Und soll mit dieser System Variable irgendetwas passieren oder lassen wir die erstmal im System rumhängen?
Grüße
Biber
Moin Tom2011,
bei WinXP ist (glaube ich) standardmäßig das nützliche Utility Reg.exe dabei - und "Reg Query" wird zum Auslesen von Werten oder Zweigen verwendet.
Spiel es einmal am CMD-Prompt nach
--> in einem Batch die Laufvariable der FOR-Anweisung als %%i statt %i schreiben.
Varianten dieser Mimik findest du im Bereich "Batch und Shell", u.a. auch Tutorials zum Auslesen/Setzen von Registry-Werten.
Grüße
Biber
bei WinXP ist (glaube ich) standardmäßig das nützliche Utility Reg.exe dabei - und "Reg Query" wird zum Auslesen von Werten oder Zweigen verwendet.
Spiel es einmal am CMD-Prompt nach
## nackte Demo
>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName
! REG.EXE VERSION 3.0
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
DefaultUserName REG_SZ Biber
## nur die relevante Zeile ausgeben
>reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName|find /i "DefaultUserName"
DefaultUserName REG_SZ Biber
Ein bisschen lesbarer und vorbereitend für einen Batch
## Vorspiel
>set regkey="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
>set "regval=DefaultUserName"
## Proof-of-concept
>reg query %regkey% /v %regval%|find /i "%regval%"
DefaultUserName REG_SZ Biber
## jetzt mit FOR/F nur das dritte Token der Zeile abgreifen - proof-of-concept mit "ECHO set" statt "set"
>for /f "tokens=3" %i in ('reg query %regkey% /v %regval%^|find /i "%regval%"') do @echo set "myvar=%i"
set "myvar=Biber"
##final am CMD-Prompt:mit "set" statt "echo set"
>for /f "tokens=3" %i in ('reg query %regkey% /v %regval%^|find /i "%regval%"') do @set "myvar=%i"
##test
> >set myvar
myvar=Biber
--> in einem Batch die Laufvariable der FOR-Anweisung als %%i statt %i schreiben.
Varianten dieser Mimik findest du im Bereich "Batch und Shell", u.a. auch Tutorials zum Auslesen/Setzen von Registry-Werten.
Grüße
Biber
Moin,
Also in dem speziellen Beispiel, macht er Umweg nur unter Umständen Sinn.
deine Variable, die du auslesen willst - gibts schon - nennt sich %username%
Zitat von @Tom2011:
Hi Biber
Ich möchte den Wert dieses Keys auslesen: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\DefaultUserName] und anschliessend den Wert in eine Windows SystemVariable %NameVariable%
einfügen. Mir geht es um die Technik wie ich das machen kann per Kommando Zeile oder so.
Mir der Variablen werden dann später andere Befehle per Kommando Zeile ausgeführt.
Hi Biber
Ich möchte den Wert dieses Keys auslesen: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon\DefaultUserName] und anschliessend den Wert in eine Windows SystemVariable %NameVariable%
einfügen. Mir geht es um die Technik wie ich das machen kann per Kommando Zeile oder so.
Mir der Variablen werden dann später andere Befehle per Kommando Zeile ausgeführt.
Also in dem speziellen Beispiel, macht er Umweg nur unter Umständen Sinn.
- Gib mal Set in einer Dosbox ein - oder andersherum,
deine Variable, die du auslesen willst - gibts schon - nennt sich %username%
Gruss
retour
Wenn du vergleichst, was der sparsame Biber im Gegensatz zu deinem POC gesetzt hat - fällts dir auch auf.
C:\>reg query "%regkey%" /v %regval%|find /i "%regval%"
Moin Tom2011,
"Vollständig" unter Batchprofis meint "Ein Anführungszeichen vorn, eins am Ende".
Bei dir fehlt das schliessende Anführungszeichen.
Grüße
Biber
Eine Idee was nicht stimmt?
Steht doch da.... die Variable %regkey% habe ich vollständif in Anführungszeichen gesetzt wegen des Leerzeichens in 'Windows NT'."Vollständig" unter Batchprofis meint "Ein Anführungszeichen vorn, eins am Ende".
Bei dir fehlt das schliessende Anführungszeichen.
Grüße
Biber