pi0h.kk
Goto Top

Batch Registry auslesen - anpassen

Hallo Zusammen,

ich versuche seit einiger Zeit eine ausgelesen Reg-Datei anzupassen, sodass sie als *.ini von einer Applikation genutzt werden kann.
Der ganze Ablauf muss zwingen mit BATCH umgesetzt werden.


Das aktuelle Output sieht folgendermaßen aus:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\BLA\PROGRAMM NAME]
"DBServer"="IPADRESSE"  
"DBUsername"="USER"  
"DBPassword"="PASSWORT"  
"DBProduct"=""  
"DBFile"="unknown"  
"DBName"=""  
"DBDialoge"="0-No"  
"DBLocation"="-"  
"DBConnection"="STRING"  
"Section"="STANDARD"  


Das Problem ist, dass die Applikation so mit der INI nicht arbeiten kann.
Das Input müsste so aussehen:

[PROGRAMM NAME]
DBServer="IPADRESSE"  
DBUsername="USER"  
DBPassword="PASSWORT"  
DBProduct=""  
DBFile="unknown"  
DBName=""  
DBDialoge="0-No"  
DBLocation="-"  
DBConnection="STRING"  
Section="STANDARD"  


Ich habe einige Ansätze mit cmd FIND oder FINDSTR versucht komme aber nicht zum entsprechenden Ergebnis. Daher habe ich mich hier angemeldet um ggf. durch euch ein paar Ideen Ansätze zu bekommen (:

Gruß Jonas

Content-Key: 343435

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

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

Member: Apophis
Solution Apophis Jul 14, 2017 updated at 09:09:43 (UTC)
Goto Top
Hallo,

das schreit nach dem more-Befehl:

echo [PROGRAMM NAME]  > Datei.ini
more +4 RegDatei.REG >> Datei.ini

Gruß
Apophis
Member: pi0h.kk
pi0h.kk Jul 14, 2017 at 09:18:19 (UTC)
Goto Top
Ah, das ist klasse. Dann habe ich die ersten Zeilen schonmal entfernt.
Wie könnte ich denn das Problem mit den " zu Begin lösen?

Also
"DBServer"="IPADRESSE"
in diese Form ändern
DBServer="IPADRESSE"


Danke !!
Member: MrCount
MrCount Jul 14, 2017 at 10:18:53 (UTC)
Goto Top
Servus,

da schaust du dir am besten mal dieses Tutorial (FOR /F) an...
Member: rubberman
Solution rubberman Jul 15, 2017 at 00:42:15 (UTC)
Goto Top
Du kannst den ganzen Kram direkt aus der Registry lesen und verarbeiten. Ungetestet etwa so:
@echo off &setlocal
>nul chcp 1252

set "key=HKLM\Software\Wow6432Node\BLA\PROGRAMM NAME"  
set "values=DBServer DBUsername DBPassword DBProduct DBFile DBName DBDialoge DBLocation DBConnection Section"  
set "outfile=test.ini"  

>"%outfile%" (  
  for %%i in ("%key%") do echo [%%~nxi]  
  for %%i in (%values%) do for /f "tokens=2*" %%j in ('reg query "%key%" /v "%%i"') do echo %%i="%%k"  
)

Grüße
rubberman
Member: pi0h.kk
pi0h.kk Jul 17, 2017 at 06:19:24 (UTC)
Goto Top
Hallo rubberman,
danke für deine Unterstützung.

Zunächst gab die Batch die Schlüssel einmal leer und einmal mit Inhalt aus. Eine kleine Änderung in der letzten Zeile hat das aber behoben.

 for %%i in (%values%) do for /f "tokens=2*" %%j in ('reg query "%key%" /v "%%i"') do if not "%%k" == "" echo %%i="%%k"  

herzlichen danke an euch alle!