blowdow
Goto Top

Per cmd einzelner Registry-String exportieren

Hallo zusammen

Mit folgendem cmd-Befehl kann ich einen "Stamm" in der Registry exportieren:

REGEDIT /E C:\Filename.REG "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main"

Soweit klappt das wunderbar.

Gerne möchte ich aber nur die Startseite des Internet-Explorers exportieren. Dieser String-Schlüssel ist in diesem Stamm mit dem Namen "Start Page".

Wie kann ich nur diesen String (Start Page) unter (HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\) exportieren?

Grüse
blowdow

Content-ID: 212755

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

Ausgedruckt am: 26.11.2024 um 15:11 Uhr

colinardo
colinardo 29.07.2013 aktualisiert um 12:16:16 Uhr
Goto Top
Hallo blowdow,
einzelnes auslesen:
reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"
das ganze kannst du dann per Batch zerpflücken...und dann wieder zu einer *.reg-Datei zusammensetzen.
z.B. so:
@echo off & setlocal ENABLEDELAYEDEXPANSION
set "regexportfile=C:\test.reg"  
set counter=1
for /f "tokens=* delims=" %%k in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"') DO @(set keyline=^[%%k^] & goto :next)  
:next
for /f "skip=1 tokens=1,2,4*" %%k in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"') DO @(set valueline="%%k %%l"="%%m")  

echo Windows Registry Editor Version 5.00 >!regexportfile!
echo. >>!regexportfile!
echo !keyline! >>!regexportfile!
echo !valueline! >>!regexportfile!

oder direkt effektiver via Powershell auslesen:
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Internet Explorer\Main" -Name "Start Page"| select -ExpandProperty "Start Page"

Grüße Uwe
Gelöste Beitrage bitte auch als solche markieren.Danke.
blowdow
blowdow 29.07.2013 um 14:21:34 Uhr
Goto Top
Hi Uwe

Herzlichen Dank für deine schnelle Hilfe! Ich konnte deinen langen Code perfekt verwenden.

Ich habe soeben gesehen, dass bei mehreren Startseiten (z.B. 4 Stück) ein neuer Schlüssel im der Registry erstellt wird. Dieser heisst "Secondary Start Page". Dort sind jeweils alle anderen Startseiten enthalten (untereinander aufgelistet). Könnte man für diese Sicherung auch deinen langen Code verwenden? Sprich, mit wenig Änderungen?

Ehrlich gesagt tue ich mich ziemlich schwer, in Sachen "delims", "tokens" usw... face-sad

Grüsse
colinardo
colinardo 29.07.2013 aktualisiert um 16:24:29 Uhr
Goto Top
Leider ist der Eintrag ein "REG_MULTI_SZ" der in der REG-Datei für einen Export in HEX-Werten gespeichert werden muss. D.h. der Aufwand nur für diesen Eintrag wäre enorm.
Ich würde die Werte mit REG QUERY auslesen und in einer anderen Form als einer REG-Datei speichern und dann mit einem Import Script in die Ziel-Registrierung eintragen (REG ADD)
blowdow
blowdow 29.07.2013 um 16:52:13 Uhr
Goto Top
Ich werde mal versuchen, ob ich das hinkriege. Du hast mir aber soweit super weiterhelfen können.

Besten Dank und schönen Abend noch

blowdow
Endoro
Endoro 29.07.2013 um 18:39:56 Uhr
Goto Top
Hallo,
man könnte es auch so machen.
 reg export "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" test.reg  
Damit wird der gesamte Schlüssel in einer reg gesichert.
Was zuviel ist, kann gelöscht werden.
lg
colinardo
colinardo 29.07.2013 aktualisiert um 20:38:02 Uhr
Goto Top
Als Nachtrag für dich hier noch ein Script was dir bei deinem Vorhaben vieleicht hilft:
(Erläuterungen weiter unten)
@echo off & setlocal ENABLEDELAYEDEXPANSION
set option=%~1
set "regsettings=%~2"  

if "%option%" neq "" (  
	if "%regsettings%" neq "" (  
		if /i "%option%" == "export" goto :EXPORT  
		if /i "%option%" == "import" goto :IMPORT  
	)
)
echo Fehlender oder falscher Parameter
echo   (Beispiel: startpage export^|import "C:\test_settings.txt")  
goto :EOF


:EXPORT
for /f "skip=1 tokens=4*" %%k in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page"') DO @(set firstpage="StartPage"="%%k")  
for /f "skip=1 tokens=5*" %%k in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Secondary Start Pages" 2^>nul') DO @(set nextpages="SecondaryPages"=%%k)  
echo !firstpage! >!regsettings!
if "!nextpages!" neq "" ( echo !nextpages! >>!regsettings!)  
goto :EOF


:IMPORT
for /f "tokens=2* delims==" %%k in ('findstr "StartPage" "%regsettings%" 2^>nul') DO @(  
	reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /f /v "Start Page" /d %%k  
)
for /f "tokens=2* delims==" %%k in ('findstr "SecondaryPages" "%regsettings%" 2^>nul') DO @(  
	reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /f /v "Secondary Start Pages" /t REG_MULTI_SZ /d %%k  
)
goto :EOF
Dieses Script speicherst du Dir z.B. als startpage.cmd und rufst es dann folgendermaßen auf:

zum Exportieren der Einstellungen in eine Datei:
startpage.cmd export "C:\settings.txt"

zum Importieren der Einstellungen aus der Datei:
startpage.cmd import "C:\settings.txt"

face-wink Uwe
blowdow
blowdow 30.07.2013 um 09:27:03 Uhr
Goto Top
Heeee Uwe

Das wird ja immer besser. Dein 31-Zeiler funktioniert auf Anhieb genau nach meinen Wünschen face-wink

Wirklich sehr nett von dir! Grosses DANKESCHÖN!

@endroro. Dir natürlich auch Mercischön! Theoretisch hätte ich genau alles nach deinem Code umsetzen können. Da aber von Win Vista zu Win7 alles importiert/exportiert wird, möchte ich nicht komplette "Registry-Stämme" kopieren (Kompatibilitäts-Problem??)

Gruss
Blowdow