reinix
Goto Top

Dword Wert per Bat aus Registry lesen

Hallo,
Ich möchte mit einer Bat-Datei einige Registry Werte auslesen und in eine Datei schreiben.

Hierzu habe ich bisher diesen Code benutzt:
@echo off & Setlocal
FOR /F "tokens=3*" %%A IN ('REG QUERY "HKEY_CURRENT_USER\Software\Alcatel\4902\AOCDial\Preference" /v "Preferred Line"')   

DO SET Pfad1=%%B

echo %Pfad1% > "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

Für einen Reg_SZ eintrag funktioniert dies auch ganz gut.

der zweite schlüssel der nun aber gelesen werden soll ist ein reg_dword schlüssel (hex)

wenn ich nun meine bat-datei wie folgend verändere erhalte ich leider nicht den gewünschten wert

@echo Setlocal
FOR /F "tokens=3*" %%A IN ('REG QUERY "HKEY_CURRENT_USER\Software\Alcatel\4902\AOCDial\Preference" /v "Preferred Line"')   

DO SET Pfad1=%%B

echo %Pfad1% > "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

FOR /F "tokens=3*" %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations"   

/v "CurrentID"') DO SET Pfad1=%%B  

echo %Pfad1% >> "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

pause

Wie kann ich das Problem lösen?

Content-ID: 71817

Url: https://administrator.de/forum/dword-wert-per-bat-aus-registry-lesen-71817.html

Ausgedruckt am: 22.12.2024 um 12:12 Uhr

bastla
bastla 24.10.2007 um 17:07:32 Uhr
Goto Top
Hallo ReiniX!

Wie definierst Du den "gewünschten Wert", bzw was hast Du weiter damit vor?

Grüße
bastla
ReiniX
ReiniX 25.10.2007 um 09:50:20 Uhr
Goto Top
Hallo ReiniX!

Wie definierst Du den "gewünschten
Wert", bzw was hast Du weiter damit
vor?

Grüße
bastla

Am ende möchte ich eine Datei haben in der in 3 Zeilen die werte (nur die werte) von 3 schlüsseln aus der registry stehen.
1. Zeile: (Reg_sz) HKEY_CURRENT_USER\Software\Alcatel\4902\AOCDial\Preference -> Prefferded Line
2. Zeile: (Reg_dword) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations\Location1 -> Country
3. Zeile (Reg_dword) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations\Location1 -> AreaCode

Beispiel für den Inhalt einer datei:
Alcatel - 359
49
07471

Später wird die datei von einer Webanwendung aufgerufen und anhand dieser voreinstellungen für die Webanwendungen vorgenommen.

Ist jetzt klarer was ich machen möchte?

mfg
ReiniX
bastla
bastla 25.10.2007 um 12:37:03 Uhr
Goto Top
Hallo ReiniX!

Soferne ich Dich richtig verstehe, stört Dich nur das Format des ausgelesenen Wertes (also "0x31" anstatt "49") - falls ja, versuch es so:
@echo off & setlocal
set "Hex2Dez=%temp%\H2D.vbs"  
echo WScript.Echo CLng("&H" ^& Mid(WScript.Arguments(0),3))>"%Hex2Dez%"  

FOR /F "tokens=3*" %%A IN ('REG QUERY "HKEY_CURRENT_USER\Software\Alcatel\4902\AOCDial\Preference" /v "Preferred Line"') DO SET Pfad1=%%B  
echo %Pfad1% > "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

for /f "skip=3 tokens=3*" %%v in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations" /v "Country"') do for /f %%d in ('cscript //nologo "%Hex2Dez%" %%v') do set Pfad1=%%d  
echo %Pfad1% >> "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

for /f "skip=3 tokens=3*" %%v in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Telephony\Locations" /v "AreaCode"') do for /f %%d in ('cscript //nologo "%Hex2Dez%" %%v') do set Pfad1=0%%d  
echo %Pfad1% >> "C:\Program Files\Alcatel_PIMphony\telefontool.ini"  

del "%Hex2Dez%"  
Für die Konvertierung des Hexwertes wird ein temporäres VBScript verwendet.

Grüße
bastla
ReiniX
ReiniX 25.10.2007 um 13:56:11 Uhr
Goto Top
Oh hmmm...
Das er das als Hex ausgeben würde, wenn es funktionieren würde war mir noch garnicht aufgefallen.
Ich hatte da wohl an einer anderen Stelle noch einen (Denk?)fehler.
Die frage mit dem hex wäre dann aber wohl meine nächste gewesen *g*

jetzt tut mein batch file wie ich will.
dankeschön!