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

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

Printed on: April 25, 2024 at 02:04 o'clock

Member: bastla
bastla Oct 24, 2007 at 15:07:32 (UTC)
Goto Top
Hallo ReiniX!

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

Grüße
bastla
Member: ReiniX
ReiniX Oct 25, 2007 at 07:50:20 (UTC)
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
Member: bastla
bastla Oct 25, 2007 at 10:37:03 (UTC)
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
Member: ReiniX
ReiniX Oct 25, 2007 at 11:56:11 (UTC)
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!