mtb4ever
Goto Top

Bestimmte Registry Einträge mit Batch auslesen

Hallo,

meine Batch datei sieht im Moment so aus:

@echo off

reg query "HKEY_CURRENT_USER\Software\GL\Ordner1\DB">Log\1.log
reg query "HKEY_CURRENT_USER\Software\GL\Ordner1\ODBC">Log\1.log
reg query "HKEY_CURRENT_USER\Software\GL\Ordner1\Ole DB">Log\1.log

copy Log\*.log /b alllogfiles.txt

pause

In der alllogfiles.txt steht dann folgendes:

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\GL\Ordner1\DB
DB REG_SZ 1

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\GL\Ordner1\ODBC
InitStringORA REG_SZ ODBC;DSN=test2;UID=test3

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\GL\Ordner1\Ole DB
InitStringORA REG_SZ Provider=MSDAORA.1;User ID=test3;Data Source=test

Nun meine Frage ist es möglich es so einzugrenzen das da nur so steht:

1
test
test2
test3

Also im Endeffekt Werte von:
DB REG_SZ 1 (nur die 1)
InitStringORA REG_SZ ODBC;DSN=test2;UID=test3 (test2 von DSN und dann test 3 von UID in neue Zeile)
InitStringORA REG_SZ Provider=MSDAORA.1;User ID=test3;Data Source=test (test von Data Source)

Dabei bleibt Registry Pfad immer gleich nur die Werte bei DB, DSN,UID und Data Source können sich ändern.

Gibt es da via Batch-Datei eine Möglichkeit ?

MfG

MTB

Content-Key: 77399

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

Ausgedruckt am: 29.03.2024 um 01:03 Uhr

Mitglied: rc-computer
rc-computer 07.01.2008 um 12:34:27 Uhr
Goto Top
Hi MTB,

ich bin eine ziemliche Niete in Sachen Batch :/ aber bei so einer filterung bin ich immer mit findstr /I sehr gut zurecht gekommen. Bei dir wuerde ich das so anwenden:

reg query "HKEY_CURRENT_USER\Software\GL\Ordner1\DB" | findstr /I REG_SZ >Log\1.log  

Mit freundlichen Gruessen
-- Johannes Matjeschk
Mitglied: bastla
bastla 07.01.2008 um 12:50:38 Uhr
Goto Top
Hallo MTB4ever!

Soferne die Struktur der Regkeys immer gleich bleibt, könnte folgender Batch (ist allerdings ungetestet) funktionieren:
@echo off & setlocal
set "OutFile=D:\Data.txt"  
set "R=HKEY_CURRENT_USER\Software\GL\Ordner1"  

for /f "tokens=3" %%i in ('reg query "%R%\DB"^|findstr "REG_SZ"') do echo %%i>"%OutFile%"  

for /f "tokens=2 delims=;" %%i in ('reg query "%R%\ODBC"^|findstr "REG_SZ"') do for /f "tokens=2 delims==" %%a in ("%%i") do echo %%a>>"%OutFile%"  
for /f "tokens=3 delims=;" %%i in ('reg query "%R%\ODBC"^|findstr "REG_SZ"') do for /f "tokens=2 delims==" %%a in ("%%i") do echo %%a>>"%OutFile%"  

for /f "tokens=3 delims=;" %%i in ('reg query "%R%\Ole DB"^|findstr "REG_SZ"') do for /f "tokens=2 delims==" %%a in ("%%i") do echo %%a>>"%OutFile%"  

Grüße
bastla
Mitglied: MTB4ever
MTB4ever 07.01.2008 um 12:54:12 Uhr
Goto Top
cool danke bastla das funktioniert einwandfrei!!!