Registry-Export sortieren
Hi!
Ich muss relativ häufig exportierte Registry-Keys miteinander vergleichen. Das eigentliche Vergleichen geht ziemlich gut mit winmerge oder plugins für notepad++ oder ähnlichen Tools.
Das Problem ist, dass die Parameter in den exportierten registry-Dateien nicht alphabetisch sondern chronologisch sortiert sind. Werte, die früher angelegt wurden, stehen in der Liste ganz oben, Werte, die später angelegt wurden ganz unten.
Ich habe also zwei Dateien, die ich vergleichen möchte, die sich aber in der Sortierung der Zeilen gewaltig unterscheiden können.
Beispiel:
Hier steht in beiden Dateien letztlich das gleiche drin, aber der Vergleich der Dateien findet Massenhaft Unterschiede.
Mein normales Vorgehen ist, dass ich in notepad++ in beiden Dateien die Blocks, die durch die Keys gebildet werden, alphabetisch sortieren lasse, danach kann ich dann ganz gut vergleichen. Da die Dateien aber manchmal 10-15 keys (Nur um Missverständnissen vorzubeugen, weil das im Sprachgebrauch oft falsch benutzt wird: "Keys" sind die "Ordner" in der Registry, hier also die Blöcke, die mit dem Namen des keys in eckigen Klammern eingeleitet werden, nicht die einzelnen Werte!) enthalten und jeder Block hat bis zu 300 Zeilen lang sein kann würde ich das gerne automatisieren. Das Problem: ich muss das auf den unterschiedlichsten Rechnern tun, habe in der Regel einen USB-Stick mit portable tools dabei, den ich nutzen kann, aber ich kann nicht erst irgendetwas installieren, um loslegen zu können.
Hat jemand eine Idee, wie man das automatisieren kann, ohne das Rad neu zu erfinden?
Alternativ wäre meine herangehensweise die folgende:
Eine Batch-Datei, die mit "for" durch die Datei geht und sie zeilenweise in temporäre Textdateien kopiert. Bei jeder eckigen Klammer fängt sie eine neue temp-Datei an. Dann werden die temp-Dateien einzeln mit sort sortiert und hinterher wieder zu einer Datei zusammenkopiert.
Fällt jemandem etwas ein, wie das einfacher gehen könnte?
Ich muss relativ häufig exportierte Registry-Keys miteinander vergleichen. Das eigentliche Vergleichen geht ziemlich gut mit winmerge oder plugins für notepad++ oder ähnlichen Tools.
Das Problem ist, dass die Parameter in den exportierten registry-Dateien nicht alphabetisch sondern chronologisch sortiert sind. Werte, die früher angelegt wurden, stehen in der Liste ganz oben, Werte, die später angelegt wurden ganz unten.
Ich habe also zwei Dateien, die ich vergleichen möchte, die sich aber in der Sortierung der Zeilen gewaltig unterscheiden können.
Beispiel:
File 1 | File 2
|
Windows Registry Editor Version 5.00 | Windows Registry Editor Version 5.00
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Key1] | [HKEY_LOCAL_MACHINE\SOFTWARE\Key1]
"value1"=dword:00000001 | "value1"=dword:00000001
"value2"=dword:00000000 | "value3"=dword:00000001
"value3"=dword:00000001 | "value2"=dword:00000000
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Key1\keyA] | [HKEY_LOCAL_MACHINE\SOFTWARE\Key1\keyA]
"value4"=dword:00000001 | "value5"=dword:00000000
"value5"=dword:00000000 | "value4"=dword:00000001
"value6"=dword:00000001 | "value6"=dword:00000001
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Key1\keyB] | [HKEY_LOCAL_MACHINE\SOFTWARE\Key1\keyB]
"value7"=dword:00000001 | "value9"=dword:00000001
"value8"=dword:00000000 | "value8"=dword:00000000
"value9"=dword:00000001 | "value7"=dword:00000001
Mein normales Vorgehen ist, dass ich in notepad++ in beiden Dateien die Blocks, die durch die Keys gebildet werden, alphabetisch sortieren lasse, danach kann ich dann ganz gut vergleichen. Da die Dateien aber manchmal 10-15 keys (Nur um Missverständnissen vorzubeugen, weil das im Sprachgebrauch oft falsch benutzt wird: "Keys" sind die "Ordner" in der Registry, hier also die Blöcke, die mit dem Namen des keys in eckigen Klammern eingeleitet werden, nicht die einzelnen Werte!) enthalten und jeder Block hat bis zu 300 Zeilen lang sein kann würde ich das gerne automatisieren. Das Problem: ich muss das auf den unterschiedlichsten Rechnern tun, habe in der Regel einen USB-Stick mit portable tools dabei, den ich nutzen kann, aber ich kann nicht erst irgendetwas installieren, um loslegen zu können.
Hat jemand eine Idee, wie man das automatisieren kann, ohne das Rad neu zu erfinden?
Alternativ wäre meine herangehensweise die folgende:
Eine Batch-Datei, die mit "for" durch die Datei geht und sie zeilenweise in temporäre Textdateien kopiert. Bei jeder eckigen Klammer fängt sie eine neue temp-Datei an. Dann werden die temp-Dateien einzeln mit sort sortiert und hinterher wieder zu einer Datei zusammenkopiert.
Fällt jemandem etwas ein, wie das einfacher gehen könnte?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 661665
Url: https://administrator.de/contentid/661665
Ausgedruckt am: 25.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Bitte. Schön das es hilft.