highend01
Goto Top

Von .reg zu .bat per script oder einem tool?

Hi zusammen,

kennt jemand evtl. ein script oder ein tool, welches einem die grobe Arbeit abnimmt, eine .reg Datei
in eine batch konforme Schreibweise zu transferieren?

Als Beispiel mal folgendes:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\LockHunter\Options]
"LangFileName"="German"  

Das script / tool sollte daraus dann folgendes fabrizieren:

Windows Registry Editor Version 5.00

REG ADD "HKCU\Software\LockHunter\Options" /v "LangFileName" /t REG_SZ /d "German" /f  

Ich weiß durchaus, dass reg add in seiner Funktionsweise limitiert ist, aber für das, wofür ich das Einsetzen möchte, würde es reichen.

Der Header in der .reg Datei kann ignoriert werden, muss aber nicht (kann auch vorher manuell gelöscht werden).

Mir würde es eigentlich nur um die Syntaxumwandlung gehen.

Ist jemanden in seinem Leben sowas also schon mal über den Weg gelaufen, was einem da ne Menge Schreibarbeit abnehmen könnte?
Natürlich würde der output im Anschluss noch mal manuell geprüft werden face-smile

Danke und Gruß,
Highend

Content-Key: 119621

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

Printed on: April 23, 2024 at 22:04 o'clock

Member: SchoSeb
SchoSeb Jul 02, 2009 at 14:19:34 (UTC)
Goto Top
Hallo Highend

schau dir doch mal anstatt "reg add" "reg import" an, damit kannst du *.reg Files in die Registry importieren.
Vielleicht hilft dir das weiter face-smile

MfG Sebastian
Mitglied: 77559
77559 Jul 02, 2009 at 14:31:16 (UTC)
Goto Top
Member: SchoSeb
SchoSeb Jul 02, 2009 at 14:37:36 (UTC)
Goto Top
@77559

genau nach diesem Ausdruck habe ich auch gesucht face-wink

MfG Sebastian
Mitglied: 60730
60730 Jul 03, 2009 at 17:40:28 (UTC)
Goto Top
Servus,

.reg Datei in eine batch konforme Schreibweise zu transferieren?

regedit /s meine.reg
ne Menge Schreibarbeit ..

...sehe ich da nun nicht drin - und da jedes Windows seit NT3.5x regedit hat und erst seit XP/W2k3 Reg.exe mußte ich mir bisher auch noch nie Gedanken darum machen.

Kannst du uns / mir mal deinen Grund nennen, warum du es per reg machen willst?
(ich lerne ja immer gerne dazu)

Gruß
Member: Highend01
Highend01 Jul 05, 2009 at 18:57:39 (UTC)
Goto Top
Warum in Foren grundsätzlich so gerne an eigentlichen Themen vorbeigeantwortet wird, wird mir wohl für immer ein Rätsel bleiben...

Es ging um die Syntaxumwandlung, nicht um alternative Methoden, irgendwelche Registry Einträge zu importieren.

Der Grund, warum ich kein regedit /s <blafasel.reg> nehme ist der, dass viele Tools auf dem Rechner existieren, die aber jeweils in benutzerspezifischen Pfaden liegen. Damit man nun nicht für jedes Tool für jeden potentiellen Benutzer eine zusätzliche .reg Datei anlegen muss, macht man es schlicht per Batch, die dann für den jeweiligen Benutzer den bei ihm einzigartigen Pfad im Batch expandiert und in die Registry schreibt.

Im Internet findet sich folgende Batchdatei, die einem dabei einiges an Arbeit abnimmt. Meine persönlichen Anmerkungen zu den im Anschluss nötigen Optimierungen / Änderungen hab ich mal weggelassen (Standardwert schreiben muss man z.B. anders machen usw.).

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "skip=1 tokens=*" %%a in ('type %1') do (  
set line=%%a
if "!line:~-1!"=="]" (  
set key=!line:[=!
set key=!key:]=!
set key=!key:HKEY_CURRENT_CONFIG=HKCC!
set key=!key:HKEY_LOCAL_MACHINE=HKLM!
set key=!key:HKEY_CLASSES_ROOT=HKCR!
set key=!key:HKEY_CURRENT_USER=HKCU!
set key=!key:HKEY_USERS=HKU!
if "!key:~0,1!"=="-" (  
echo REG DELETE "!key:~1!" /f  
) else (
echo REG ADD "!key!" /f  
)) else (
for /f "tokens=1* delims==" %%b in ('echo !line!') do (  
set val=%%~b
set dat=%%c
if "!dat:~0,1!"=="-" (  
echo REG DELETE "!key!" /v "!val!" /f  
) else (
set typ=SZ
if /i "!dat:~0,6!"=="dword:" set typ=DWORD&set dat=!dat:dword=!&set dat=!dat:~1!  
if /i "!dat:~0,7!"=="hex^(7^):"set typ=EXPAND_SZ&set dat=!dat:hex^(7^)=!&set dat=!dat:~1!  
echo REG ADD "!key!" /v "!val!" /t REG_!typ! /d "!dat!" /f  
))))

--
Highend
Mitglied: 80220
80220 Jul 05, 2009 at 19:30:48 (UTC)
Goto Top
Zitat von @Highend01:
Warum in Foren grundsätzlich so gerne an eigentlichen Themen vorbeigeantwortet wird, wird mir wohl für immer ein Rätsel bleiben...

Vielleicht deshalb, weil man mit etwas Eigeninitiative selbst fündig wird, wie dein gepostetes Script beweist?

Die Zeilen 9-13 sind übrigens überflüssig.
Mitglied: 77559
77559 Jul 06, 2009 at 07:29:32 (UTC)
Goto Top
Zitat von @80220:
> Zitat von @Highend01:
> Warum in Foren grundsätzlich so gerne an eigentlichen
Themen vorbeigeantwortet wird, wird mir wohl für immer ein
Rätsel bleiben...

@Highend01
Dein Posting beweist doch das du meinem gidf Link gefolgt bist und dies gelesen hast:
  • Jemand ist der Meinung, dass du zu dumm bist, um mit Google nach convert reg to batch zu suchen. Stattdessen nervst du andere Leute damit, für dich doch bitte nach convert reg to batch zu suchen. Man gab dir diesen Link, um dich genau darauf hinzuweisen. Der Umstand, dass du ihm gefolgt bist, bestätigt das.

Vielleicht deshalb, weil man mit etwas Eigeninitiative selbst fündig wird, wie dein gepostetes Script beweist?
Von wegen Eigeninitiative und dann noch behaupten die Antworten ginge am Thema vorbei.

Ein freimütiges Eingeständnis die richtigen Google Suchbegriffe nicht gefunden zu haben wäre eher angebracht.

Gruß
LotPings

PS: Wenn man schon fremden Code postet sollte man auch die Quellenangabe http://www.msfn.org/board/lofiversion/index.php/t82457.html nicht vergessen
Mitglied: 60730
60730 Jul 06, 2009 at 08:04:37 (UTC)
Goto Top
Zitat von @Highend01:
Warum in Foren grundsätzlich so gerne an eigentlichen Themen vorbeigeantwortet wird, wird mir wohl für immer ein Rätsel bleiben...

moin,

du sorry - aber nur weil ich (als einziger) es gewagt habe - mach bitte keine Grundsatzdiskussion draus face-wink

Es ging um die Syntaxumwandlung, nicht um alternative Methoden, irgendwelche Registry Einträge zu importieren.

wie bereits geschrieben sorry...

Der Grund, warum ich kein regedit /s <blafasel.reg> nehme ist
der, dass viele Tools auf dem Rechner existieren, die aber jeweils in benutzerspezifischen Pfaden liegen. Damit man nun nicht....

Yupp gerne geschehen...

Ich schreibs dir mal ganz frank & frei, wie der Satz weitergeht...

Damit man nun nicht auf die Idee kommen muß, evtl alle Tools - nicht in benutzerspezifischen Pfaden, sondern in allgemein üblichen Pfaden also - (Netzwerkidentisch) zu installieren, dann kommen "Kollegen" - die gerne Nicks mit Hacker, Highend blafasel benutzen lieber auf die Idee - einen krummen Ansatz mit einem "krummen" Workaround zu lösen face-wink

btw: Nur weil deine Antwort so geschrieben ist, wie du es nunmal geschrieben hast - kommt genau die Antwort und nicht die, das es auch ganz viel einfacher & eleganter geht.
per loginskript aber ich will dich ja nicht von deinem Weg fernhalten, ich kann und will nur denen helfen, die Hilfe wollen face-wink.
Ich sehe z.B keine Abfrage, ob das Tool - dass registriert werden soll - überhaupt "installiert" ist...

Gruß und sei mal (als Frischling) nicht gleich auf dem Kriegspfad, denn das ist garantiert der falsche Weg face-wink