Batch-Dateiskription So exportieren, suchen und ersetzen Sie einen Registrierungsschlüssel (XP, Win2k3, Vista, Windows 7)

Dieses Rezept richtet sich an fortgeschrittene Personen, die mit dem Betriebssystem vertraut sind, und für diejenigen, die in einem Unternehmen mit App-Bereitstellung arbeiten. Wenn Sie in der IT und in einem App-Bereitstellungsteam arbeiten, werden Sie oft in Situationen geraten, in denen Sie entweder einen Registrierungsschlüssel und einen Schlüssel suchen und durch einen neuen Eintrag ersetzen müssen. Manchmal gibt es jedoch Fälle, in denen Sie den Hauptschlüssel der Registrierungseinträge kennen, sich jedoch nicht sicher sind, welche Einträge darunter geändert werden müssen. Lasst uns eine Lösung finden!


WARNUNG:
Wenn Sie mit der Eingabeaufforderung, den Stapeldateien und der Windows-Registrierung nicht vertraut sind, Seien Sie beim Testen / Verwenden dieser Batchdatei besonders vorsichtig. Ich persönlich würde empfehlen, entweder Tests auf einer virtuellen Maschine (z. B. Virtualbox, kostenlos; VMWare Workstation) oder eine Maschine durchzuführen, die Sie nicht interessiert. Du wurdest gewarnt. 🙂

OK, erstmal los. Beginnen wir mit den beiden Code-Teilen. Um dies zu verwenden, kopieren Sie sie und fügen Sie sie in den Editor ein. Speichern Sie sie dann mit den angegebenen Namen. (Achten Sie darauf, von TXT-Dateien zu Alle Dateien im Editor-Dialogfeld "Speichern" zu wechseln.)

Dateiname: Ersetzen.bat (über dostips.com)

@echo aus
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION
REM BatchSubstitude - analysiert eine Datei Zeile für Zeile und ersetzt einen Teilstring "
REM-Syntax: BatchSubstitude.bat OldStr NewStr-Datei
REM OldStr [in] - Zeichenfolge, die ersetzt werden soll
REM NewStr [in] - Zeichenfolge, die durch ersetzt werden soll
REM-Datei [in] - zu analysierende Datei
REM $ geändert 20100115
REM-Quelle http://www.dostips.com
wenn "% ~ 1" == "" findstr "^ ::" "% ~ f0" & GOTO: EOF
for / f "tokens = 1, * delims =]" %% A in ('"Typ% 3 | find / n / v" "") do (
setze "line = %% B"
wenn definierte Zeile (
call set "line = echo. %% line:% ~ 1 =% ~ 2 %%"
for / f "delims =" %% X in ('"echo." %% line %% ""') do %% ~ X
ELSE Echo.
)

___________________________

Dateiname: MainApp.bat


@echo aus
REM Autor: seamonkey420
REM http://blogs.tech-recipes.com/seamonkey420
REM
REM 15.03.2010
REM Dieser Stapel analysiert und aktualisiert die Registrierungsschlüssel für das Diktiermodul
REM So werden die Schritte ausgeführt:
REM 1. Exportiert den Registrierungsschlüssel in eine viewFolder.txt-Datei
REM HINZUFÜGEN EINER REGISTRIERUNG FÜR DEN EXPORT (dh formatiert als: HKEY_CURRENT_USER \ Control Panel \ Mouse)
2. REM gibt die Anzeige der Datei ein und sucht dann nach Einträgen, die "Ja" enthalten, durch "Nein" ersetzt und in der neuen Datei keys.txt gespeichert
REM 3. Wir geben die erforderliche Registrierungsversion in die neue Registrierungsdatei zurück
REM 4. Dann Echo-Abschnitt, unter den die Werte gehen
REM 5. Ersetzen Sie den Servernamen aus den Einträgen mithilfe einer separaten Replace.bat-Datei und hängen Sie dann (mit freundlicher Genehmigung von www.dostips.com) an die Datei newkeys.reg an
REM 6. Schließlich werden neue Registrierungseinträge in der Datei newkeys.reg erneut in die Registry importiert
REM 7. Zuletzt werden alle temporären Dateien entfernt


set rkey = HKEY_CURRENT_USER \ Systemsteuerung \ Maus
set findv = "Ja"
set replacev = "Nein"
set registryver = Windows Registry Editor Version 5.00
echo "Ändern der Registrierungswerte, bitte warten ..."
REG EXPORT "% rkey%" viewFolder.txt
Typ viewFolder.txt | find% findv%> keys.txt
echo% registryver%> newkeys.reg
echo [% rkey%] >> newkeys.reg
CALL Replace.bat% findv%% replacev% keys.txt >> newkeys.reg
reg import newkeys.reg
del / q newkeys.reg viewFolder.txt keys.txt
Ausfahrt

______________________

Um dies zu verwenden, müssen Sie die MainApp.bat bearbeiten (klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Bearbeiten, der Editor wird geöffnet).

Grundsätzlich fragt MainApp.bat einen Registrierungsschlüssel ab, den Sie in der Variablen "set rkey =" definieren (in meiner Batchdatei verwende ich zwei Mauseinstellungen als Beispiel).

Dann wird der Schlüssel und die Unterschlüssel in eine Datei namens viewFolder.txt exportiert

Verwenden Sie dann den Befehl FIND, um die Datei viewFolder.txt nach dem Wert zu durchsuchen, der in der Variablen "findv =" (in meiner Batchdatei, Yes) festgelegt ist, und exportieren Sie diese Werte dann in eine neue Datei mit dem Namen keys.txt

Wir erstellen dann unsere Registrierungsdatei, die mit den neuen Werten erneut importiert wird, indem die erforderliche Registrierungsversion in einer Datei mit dem Namen newkeys.reg angezeigt wird

Wir hängen dann den Registrierungsschlüssel, unter dem wir gesucht haben, an die Datei newkeys.reg an (in meiner Batch-Datei den Moue-Kontrollfeldschlüssel)

Jetzt verwenden wir die Replace.bat-Datei, um den zu ersetzenden Schlüssel zu finden, und ersetzen ihn durch den neuen Schlüsseleintrag. Diese Daten werden dann an die Datei newkeys.reg angehängt.
An diesem Punkt können wir die Registrierungsdatei mit den neuen Werten erneut importieren und mit reg import wieder importieren.
Zum Schluss bereinigen und entfernen wir die Dateien newkeys.reg, viewFolder.txt und keys.txt und beenden unser Programm.

ANMERKUNGEN:
-Erfordert ein Administratorkonto, um ausgeführt zu werden oder mit erhöhten Rechten ausgeführt werden zu können (wie bei den meisten registrierungsbasierten Dingen)
-Laufen Sie als gesicherter Systembenutzer über Novell Zenworks, um auf einem Computer eines Nicht-Administrators zu laufen und die richtigen Schlüssel zu erhalten, wenn es sich um einen CURRENT_USER-Schlüssel handelt.
-Stellen Sie REM vor eine Zeile, um es zu bemerken, und lassen Sie es aus dem Laufen aus.
- Fügen Sie am Ende der Stapeldatei eine Pause hinzu, um das Eingabeaufforderungsfenster oben zu lassen, und ändern Sie @echo in @echo (für Debugging und Testen).
In dieser Batchdatei können Sie auch andere Systemvariablen verwenden
-Funktioniert auf jeder Windows-Version XP und höher; Vista und Win7.