pi0h.kk

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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 343435

Url: https://administrator.de/forum/batch-registry-auslesen-anpassen-343435.html

Ausgedruckt am: 15.05.2025 um 00:05 Uhr

Apophis
Lösung Apophis 14.07.2017 aktualisiert um 11:09:43 Uhr
Goto Top
Hallo,

das schreit nach dem more-Befehl:

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

Gruß
Apophis
pi0h.kk
pi0h.kk 14.07.2017 um 11:18:19 Uhr
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 !!
MrCount
MrCount 14.07.2017 um 12:18:53 Uhr
Goto Top
Servus,

da schaust du dir am besten mal dieses Tutorial (FOR /F) an...
rubberman
Lösung rubberman 15.07.2017 um 02:42:15 Uhr
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
pi0h.kk
pi0h.kk 17.07.2017 um 08:19:24 Uhr
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!