Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Registry ohne reg.exe bearbeiten

Mitglied: nullplan001

nullplan001 (Level 1) - Jetzt verbinden

07.11.2005, aktualisiert 03.08.2010, 38544 Aufrufe, 9 Kommentare

Nach dem Lesen der Beiträge hier habe ich festgestellt, dass die meisten Batch-Programmierer kaum noch ohne das Tool reg.exe auskommen. Da es jedoch möglicherdings Leute ohne dieses Tool gibt, wollte ich eine Alternative anbieten.

Und das tue ich auch hiermit. Da ich selbst mich nicht in die Abhängigkeit einer 16-Bit-Exe, die nicht einmal allen Windows-Nutzern zur Verfügung steht, begeben kann und will, habe ich eine Methode entwickelt, die auf jedem Windows ab 95 ausführbar ist. Also fangen wir an:
Hier mal ein kleines Batch-Bsp.:
01.
@echo off 
02.
 
03.
:: Für den Fall, dass es sie schon gibt 
04.
del temp.reg 
05.
 
06.
:: Vorbereiten der Datei 
07.
echo REGEDIT4 > temp.reg 
08.
echo. >>temp.reg 
09.
 
10.
:: erstmal einlesen (das sehr viel leichtere von beiden) 
11.
echo [HKEY_MEIN_HIVEMein Unterschlüssel] >>temp.reg 
12.
echo "MeinWertname"="Mein String" >>temp.reg 
13.
 
14.
:: Datentypen gibt es <a href="https://www.administrator.de/wissen/die-windows-registry-mit-reg-dateien-bearbeiten-10853.html">hier</a> 
15.
:: Nachtrag: REG_EXPAND_SZ: Als Typ "hex(2)" angeben,  
16.
:: ANSI-Code-Zahl des Zeichens in hexadezimal, ein Komma,  
17.
:: zwei Nullen, ein Komma, Beginn von vorn 
18.
:: REG_MULTI_SZ: Wie oben, nur als Typ "hex(7)" angeben und "00"  
19.
:: als Zeichen (z.B.: 41,00,<b>00</b>,00) bewirkt Zeilenumbruch 
20.
 
21.
:: Danach REG-Datei einlesen und löschen 
22.
regedit /s temp.reg 
23.
del temp.reg 
24.
 
25.
:: Und nun das Auslesen.  
26.
:: Zuerst Exportieren 
27.
regedit /e temp.reg "HKEY_MEIN_HIVEMeinUnterschlüssel"  
28.
:: Die Zeile mit dem Wert herausholen 
29.
for /f "eol=[ skip=2 tokens=1* delims==" %i in ('type temp.reg') do ( 
30.
  if %i=="MeinWertname" set Zielvariable=%j 
31.
32.
 
33.
del temp.reg 
34.
 
35.
::Jetzt steht der Wert in "Zielvariable"
Erklärung zum Auslesealgorithmus:
Mit der Option "delims" definiere ich das Tokentrennzeichen um zu "=". Mit "tokens=1*" sage ich dem CLI, dass der Variablen "%i" (explizit definiert) das erste Token zugewiesen werden soll und "%j" (Folgeelement von i) den Rest abbekommt. Jetzt ist der Wert isoliert.
Das sollte gezeigt haben, dass man auch ohne reg.exe in der Registry arbeiten kann. Diese Methode hat weiterhin den Vorteil, dass man auch nach Werten suchen kann, da in einer REG-Datei alle Sub-Schlüssel mitaufgelistet werden. Außerdem bekommt man, was man sucht, nämlich den Wert in einer Variablen gespeichert, keine seltsame Ausgabe auf dem Bildschirm (bei REG_MULTI_SZ verhält sich reg.exe recht seltsam.

Unklarheiten bitte ich, zu posten.

[Edit Biber] Hier noch mal der Link aus dem Sourcecode in klickbar: Tim.Frodermanns Anleitung Die Windows-Registry mit reg-Dateien bearbeiten [/Edit]
Mitglied: Biber
07.11.2005 um 21:54 Uhr
Moin nullplan001,
für ein Montagstutorial ganz gut...
[Edit] ---erledigt-- [/Edit]
Grüße und Danke
Biber
Bitte warten ..
Mitglied: nullplan001
08.11.2005 um 17:13 Uhr
In der Schleife bin ich mit meinem Latein am Ende. Was ich auch tat, ich konnte die Shell nicht davon überzeugen, mir die Datei, getrennt in Tokens auszugeben. Mein Testbefehl war
01.
regedit /e temp.reg "HKEY_CLASSES_ROOT\.txt" 
02.
for /f "eol=[ tokens=1* delims== " %i in (temp.reg) do @echo %i %j
Aber ich erhielt immer nur eine leere Zeile. Was mache ich nur falsch???
Bitte warten ..
Mitglied: Biber
08.11.2005 um 18:54 Uhr
Moin, nullplan001,
warst aber ganz nah dran..
Ersetze in Deiner Zeile...
for /f "eol=[ tokens=1* delims== " %i in (temp.reg) do @echo %i %j 
...den Inhalt der Klammer durch ein 'type temp.reg' in einfachen Anführungszeichen.
01.
>for /f "eol=[ tokens=1* delims== " %i in ('type temp.reg') do @echo %i %j  
02.
Windows Registry Editor Version 5.00 
03.
[HKEY_CLASSES_ROOT\.txt] 
04.
@ "TextPad.txt" 
05.
"Content Type"="text/plain" 
06.
"PerceivedType" "text" 
07.
[HKEY_CLASSES_ROOT\.txt\PersistentHandler] 
08.
@ "{5e941d80-bf96-11cd-b579-08002b30bfeb}" 
09.
[HKEY_CLASSES_ROOT\.txt\ShellNew] 
10.
"NullFile" ""
Um bei dem Beispiel zu bleiben.. wenn ich nun den PerceivedType haben will:
01.
>for /F "skip=2  delims== tokens=1,2" %i in ('find "Percei" temp.reg') do @echo %i %j 
02.
"PerceivedType" "text"
oder, um endlich zum Setzen in Variablen zu kommen:
01.
>for /F "skip=2  delims== tokens=2" %i in ('find "Percei" temp.reg') do MyPerceivedType=%i 
02.
>set my 
03.
MyPerceivedType="text"
Ich hatte mal in einem anderen Tutorial hier (Batch Tut III) als Beispiel in einem Batch:
01.
.. 
02.
Set RegFile=%temp%\%random%.reg  
03.
START /W REGEDIT /E %Regfile% "HKEY_CURRENT_USER\Control Panel\International"  
04.
:: Auswerten der Werte iDate (0,1,2) und sDate (Datumstrennzeichen)  
05.
FOR /F "tokens=1* delims==" %%i IN ('Type %RegFile% ^| FIND /I "iDate"') DO SET iDate=%%j  
06.
FOR /F "tokens=1* delims==" %%i IN ('Type %RegFile% ^| FIND /I "sDate"') DO SET sDate=%%j  
07.
DEL %RegFile%  
08.
 
09.
:: RegWerte weiterbehandeln... Anführungszeichen entfernen  
10.
SET iDate=%iDate:"=%  
11.
SET sDate=%sDate:"=% 
HTH & HANN
Biber
Bitte warten ..
Mitglied: nullplan001
09.11.2005 um 14:08 Uhr
Soll ich den Boden küssen, auf dem du stehst, Biber? Ich sage es mal so:
<div style="color:white; background-color:black;">DAAAAAAAAAAAAAAAAAAAANKE</div>
Bitte warten ..
Mitglied: nullplan001
26.01.2007 um 15:57 Uhr
Klar geht das: Erst auslesen, dann schreiben:

01.
@echo off & setlocal enableextensions enabledelayedexpansion 
02.
set tmpreg=%temp%\~%random%.reg 
03.
set uid=S-1-5-21-1715567821-1220945662-1801674531-1982 
04.
regedit /e %tmpreg% "HKEY_USERS\%uid%\Software\Microsoft\Windows\CurrentVersion\Internet Settings" 
05.
for /f "eol=[ skip=2 tokens=1* delims==" %%i in ('type %tmpreg%') do if %i="ProxyOverride" ( 
06.
    set curprox=%%~j 
07.
:: entfernt schon hier eventuelle Anführungszeichen 
08.
    goto endfor 
09.
10.
:endfor 
11.
set newprox=www.google.de;%curprox% 
12.
 
13.
del %tmpreg% 
14.
echo REGEDIT4 > %tmpreg% 
15.
echo. >> %tmpreg% 
16.
echo [HKEY_USERS\%uid%\Software\Microsoft\Windows\CurrentVersion\Internet Settings] >> %tmpreg% 
17.
echo "ProxyOverride"="%newprox%" >> %tmpreg% 
18.
echo. >> %tmpreg% 
19.
regedit /s %tmpreg% 
20.
del %tmpreg%
Soweit verständlich?
HTH,
nullplan
Bitte warten ..
Mitglied: Biber
26.01.2007 um 22:27 Uhr
Moin nullplan und metalworld,

als kleine Ergänzung zu nullplan's Lösung:
- Ein Tippfehler ist reingerutscht: Statt [...do if %i="ProxyOverride"] sollte es sein [...do if %%i="ProxyOverride"]
- und an der gleichen Stelle ist ein
...%%i in ('find "ProxyOverride" %tmpreg%')
.. oder ähnliche Find/FindStr-Konstrukte etwas schneller als
...%%i in ('type %tmpreg%')


Liebe Grüße und nochmals danke @nullplan001 für dieses schöne Tutorial
Biber
Bitte warten ..
Mitglied: jackssh
09.05.2008 um 13:52 Uhr
Hallo,

ich hab mal eine Frage zu diesem Skript:

Sobald bei ProxyOverride <local> eingetragen ist (immert dann wenn bei lokale Adressen umgehen das Häkchen gesetzt ist) und somit in %curprox% enthalten ist, bricht das Skript mit Syntaxfehler an dieser Stelle ab:

01.
set newprox=www.google.de;%curprox%
Fällt jemand dazu eine Lösung ein?

Viele Grüße

Jack
Bitte warten ..
Mitglied: Biber
09.05.2008 um 16:58 Uhr
Moin jackssh,

wenn ich es richtig verstanden habe, steht der String "<local>" in der Variablen %curprox%?

dann (also wenn Du die Sonderzeichen "<" und ">" erwartest) musst ">" und "<" mit einem Caret ("^") maskieren.

Ist zwar lästig, aber nötig.

Beispiel: Statt jetzt: Set newprox=www.gugl.de;%curprox%
01.
::Annahme %curprox% könnte Wert "<local>" haben 
02.
set "curprox=%curprox:<=^<%" 
03.
set "curprox=%curprox:>=^>%" 
04.
::  curprox ist jetzt "maskiert": %curprox%=^<local^> 
05.
set newprox=www.google.de;%curprox%
[Edit]
Okay, genau genommen reicht eigentlich schon das Setzen des SET-Geraffels in Anführungszeichen.
set "newprox=www.google.de;%curprox%"
[/Edit]

Grüße
Biber
Bitte warten ..
Mitglied: jackssh
13.05.2008 um 15:54 Uhr
Hi Biber!

Super, hat beides funktioniert!

Vielen Dank!

Gruß, Jack
Bitte warten ..
Ähnliche Inhalte
Administrator.de Feedback

Entwicklertagebuch: Neue Werkzeuge zum Bearbeiten von Kommentaren

Information von admtechAdministrator.de Feedback4 Kommentare

Hallo Administrator User, mit dem neuesten Release 5.1 haben wir das Hinzufügen und Bearbeiten von Kommentaren vereinfacht und verbessert. ...

Administrator.de Feedback

Entwicklertagebuch: Neue Werkzeuge zum Bearbeiten von Beiträgen

Information von admtechAdministrator.de Feedback5 Kommentare

Hallo Administrator User, mit dem neuesten Release haben wir die Seite zum Hinzufügen und Bearbeiten von Beiträgen vereinfacht und ...

Windows Tools

Registry Edit über Remote (PsExec.exe)

Tipp von MasterBaiterWindows Tools4 Kommentare

Mit folgender Beschreibung lässt sich ein Eintrag in die Registry editieren: CMD als Admin ausführen: WIN Suche "cmd" bei ...

Windows Update

Registry Eintrag für Meltdown und Spectre Updates nicht mehr nötig

Information von sabinesWindows Update1 Kommentar

Im KB Artikel ist beschrieben, dass der Registry Eintrag nicht mehr nötig ist, um die Updates zu erhalten/installieren. Fehlte ...

Neue Wissensbeiträge
Voice over IP

Rufnummernblock aufbrechen nun möglich bei DTAG

Tipp von Datenreise vor 10 MinutenVoice over IP

Bei der Telekom ist es seit einigen Tagen laut Aussage der Geschäftskunden-Hotline möglich, eine Rufnummernübernahme auch dann durchzuführen, wenn ...

Netzwerke
Riesiges Botnetz in Deutschland
Tipp von FFSephiroth vor 1 StundeNetzwerke1 Kommentar

Überprüft mal eure Router und NAS

Soziale Netzwerke

Freitag, der 25.05 - Facebook baut weltgrößtes P.ähm Antip.archiv der Welt auf

Information von certifiedit.net vor 3 StundenSoziale Netzwerke1 Kommentar

Guten Morgen, da fragt man sich doch allen ernstes, was Facebook damit bezwecken möchte, ich tippe ja darauf, dass ...

Erkennung und -Abwehr

VPNFilter Maleware - Großes Botnetz auf NAS und Routern in 54 Ländern aufgedeckt

Information von Frank vor 4 StundenErkennung und -Abwehr2 Kommentare

Nach Angaben von Cisco und der Sicherheitsfirma Talos wurde ein sehr großes Botnet auf Routern und NAS-System entdeckt. Die ...

Heiß diskutierte Inhalte
Datenschutz
E-Mail Verschlüsselung DSGVO 2018
gelöst Frage von SoccerdeluxDatenschutz33 Kommentare

Hallo zusammen, ich verzweifele langsam und wende mich an euch und hoffe vielleicht ein paar Antworten zu finden. Ich ...

HTML
Link nicht vollständig
Frage von jensgebkenHTML33 Kommentare

Hallo Gemeinschaft, ich erstelle mit Word einen Serienbrief, den ich per Mail versende. Nun mein Problem der Wordserienbrief holt ...

Rechtliche Fragen
DISKUSSION: Was bringt der Disclaimer "Wenn Sie nicht der Empfänger sind."
Frage von N8DragonRechtliche Fragen23 Kommentare

So oder ähnlich, lese ich immer wieder Kleingedrucktes am Ende diverser Mails. Letzten Endes wollen sie mir alle sagen, ...

Server-Hardware
HPE DL 360e GEN8 - P420 - Lüfter drehen auf nach Festplattenwechsel
Frage von maniacmacpainServer-Hardware20 Kommentare

Hallo, ich kenne den Effekt, dass man bei der GEN8 von HP ein Array eingerichtet haben muss, damit die ...