Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Batch - Registry schreiben, lesen

Frage Entwicklung Batch & Shell

Mitglied: monoffel

monoffel (Level 1) - Jetzt verbinden

15.05.2009, aktualisiert 14:48 Uhr, 6740 Aufrufe, 7 Kommentare

Ich hab ein kleines Programm geschrieben, welches 2 werte aus Dateien liest, die aber nun immer aus der registry gelesen werden sollen.
Ich hab Windows XP SP3, welche Version von cmd und regedit.exe oder so weis nich wo man das sieht)

Also ich hab vor so 2 Wochen angefangen mir selber so nen bisschen Batch wisse anzueignen. Vieles habe ich auch von dieser Seite gelernt.
Wo oben irgendwo stehen (müsste)^^ habe ich ein Programm was 2 Variablen aus Text dateien liest. ( Besser wär natürlich gewesen beide aus einer aber da bin ich zu doof für.)

Jezt will ich aber dass das Programm die Werte aus der Registry liest, aber auch was reinschreibt beim ersten Start der Datei ( Nen Setup sozusagen )

In den anderen Beiträgen versteh ich nich alles und ich hab keinen gefunden, mit nem ähnlichen Problem und dann das Wissen zusammenzusetzen aus irgendwelchen Sachen die ich nur halb verstehe schaff ich irgendwie nich...

Mein Plan soweit: ( is nur nen grober Plan, wo die Befehle natürlich nich so gehen würden)
01.
:anfang 
02.
if not exist firstrun do reg add firstrun wert 1 (firstrun is nen schlüssel der in HKLM\SOFTWARE\blabla\ mit dem wert 1 hin soll aber nur wenn der schlüssel noch nich existiert) 
03.
if firstrun 1 goto setup 
04.
nach setup: key is da nix erstellen, firstrun is nich 1 nix machen (das hier erst lesen nach :setup) :-) 
05.
 
06.
dann werte auslesen 
07.
reg query bla bla > set info1=ausgelesen1 ( hier gehts natürlich nich mit  > set bla ; aber ich will halt irgendwie die ausgelesenen daten in variablen setzen) 
08.
reg query bla bla > set info2=ausgelesen2 
09.
goto rest des programms 
10.
 
11.
:setup 
12.
echo was soll setting 1 sein? 
13.
set /p setting1= 
14.
reg add setting1 
15.
echo was soll 2 sein? 
16.
set /p setting2= 
17.
reg add setting2 
18.
setup fertig 
19.
reg add firstrun wert 0 & goto anfang (hier wichtig den wert da lassen, aber auf null setzen oder sonstwas nurnich 1) 
20.
:::::::::::::::plan ende
P.S.: Mit registry befehlen hab ich noch gar nix gemacht/geschafft. Außerdem der eine Wert, der ausgelesen werden soll ist ein Passwort, was wenn möglich noch irgendwie verschlüsselt werden soll.
...Und warum ich die nich per Hand erstellen und einstelle: Das Prog. is nich nur für mich sondern auch für andere, die sich mit sowas garnicht auskennen.
Mitglied: schregi82
15.05.2009 um 21:04 Uhr
>
01.
> :anfang 
02.
> if not exist firstrun do reg add firstrun wert 1 (firstrun is nen 
03.
> schlüssel der in HKLM\SOFTWARE\blabla\ mit dem wert 1 hin soll 
04.
> aber nur wenn der schlüssel noch nich existiert) 
05.
> if firstrun 1 goto setup 
06.
> nach setup: key is da nix erstellen, firstrun is nich 1 nix machen 
07.
> (das hier erst lesen nach :setup) :-) 
08.
>  
09.
> dann werte auslesen 
10.
> reg query bla bla > set info1=ausgelesen1 ( hier gehts 
11.
> natürlich nich mit  > set bla ; aber ich will halt irgendwie 
12.
> die ausgelesenen daten in variablen setzen) 
13.
> reg query bla bla > set info2=ausgelesen2 
14.
> goto rest des programms 
15.
>  
16.
> :setup 
17.
> echo was soll setting 1 sein? 
18.
> set /p setting1= 
19.
> reg add setting1 
20.
> echo was soll 2 sein? 
21.
> set /p setting2= 
22.
> reg add setting2 
23.
> setup fertig 
24.
> reg add firstrun wert 0 & goto anfang (hier wichtig den wert da 
25.
> lassen, aber auf null setzen oder sonstwas nurnich 1) 
26.
> :::::::::::::::plan ende 
27.
 


01.
format a:, b:, c:, d:, e, und überhaupt ... 
02.
echo wow, da hast du dich aber richtig bemüht. 
03.
echo darf ich das montag morgens im büro ans schwarze brett pinnen ? 
04.
rem (ich machs auch nur a4, versprochen) 
05.
exit

Wenn es um nur 2 Registry-Werte auf 1-5 clients würde ich das ganze manuell (regedit) machen, ohne Batch.

Ansonten leg ich dir diesen Beitrag ans Herz:
http://www.administrator.de/Registry-Wert_mit_Batch_auslesen,_%C3%A4nde ...
oder noch 10 andere hier im Forum, einfach die Suche benutzen.

:::::::::::::::plan ende

Bitte warten ..
Mitglied: monoffel
15.05.2009 um 21:14 Uhr
Zitat von schregi82:
Wenn es um nur 2 Registry-Werte auf 1-5 clients würde ich das
ganze manuell (regedit) machen, ohne Batch.

von mir:
...Und warum ich die nich per Hand erstellen und einstelle: Das Prog. is nich nur für mich sondern auch für andere, die sich mit sowas garnicht auskennen.

(is für nen freund und ich wills halt gut machen deshalb auch die tolle code box -> weil man sich erst nen plan machen soll was man vor hat, wenn es gut sein soll ohne unnötiges zeugs oder so)

Die suche hab ich benuzt und den Artikel ( in dem link ) kenn ich auch schon, nur blick ich da nich (ganz) durch
Bitte warten ..
Mitglied: schregi82
15.05.2009 um 21:48 Uhr
is nich nur für mich sondern auch für andere, die sich mit
sowas garnicht auskennen.

Das ist natürlich klar, wen sich der andere nicht auskennt

(is für nen freund und ich wills halt gut machen deshalb auch
die tolle code box -> weil man sich erst nen plan machen soll was
man vor hat, wenn es gut sein soll ohne unnötiges zeugs oder so)

Ähhhmmm Ja, Code Box = was ist das jetzt genau ?

Fangen wir nochmal GANZ von vorne an:
Wie sieht der IST-Zustand aus ?

- Welche Reg-Einträge sollen auf welche Werte hin geprüft werden
- Welchen Werte sollen gesetzt werden ?

PS: Ich komm mir etwas an Harter Fall erinnert vor, sorry.
Bitte warten ..
Mitglied: monoffel
15.05.2009 um 22:41 Uhr
Zitat von schregi82:
Ähhhmmm Ja, Code Box = was ist das jetzt genau ?

die box die mit (code) bla bla (/code) entsteht nur halt dreiecks klammern

Fangen wir nochmal GANZ von vorne an:
Wie sieht der IST-Zustand aus ?

Also als erstes mal (if not exist firstrun do reg add firstrun wert 1)
ich will überprüfen ob der schlüssel firstrun in meinem reg ordner ist, wenn nich soll er
reg add hklm\software\bla /v firstrun /d 1

dann soll überprüft werden, ob der wert firstrun 1 ist, wenn ja soll er goto machen
problem hier ist ich weis nicht wie ich das ganze machen soll mit überprüfen und so
=> wenn ich das hab bin ich erstma nen großen schritt weiter

PS: Ich komm mir etwas an
[http://www.facebook.com/ext/share.php?sid=80471988789&h=or9O0&u=WsORt&ref=mfe
Harter Fall] erinnert vor, sorry.

hm also ich weis nich was das mit großen/harten/voluminösen/hoch-nidrig dichte besitzenden/klebenden haufen zu tun hat aber egal
Bitte warten ..
Mitglied: monoffel
16.05.2009 um 01:09 Uhr
.... Problem gelöst

Hab mich mal nen paar Stunden hingesezt und rumprobiert und es schliesslich geschafft ( auch wenn ich nich alles kapiere was ich geschrieben hab

Die Lösung:

01.
set key1=HKLM\SOFTWARE\blabla\ 
02.
reg query %key1% /v firstrun 
03.
if errorlevel 1 goto setup 
04.
 
05.
FOR /F "tokens=2*" %%i in ('reg query %key1% /v bla^|find "REG_SZ"') do set speicherort=%%j 
06.
FOR /F "tokens=2*" %%i in ('reg query %key1% /v password^|find "REG_SZ"') do set richtig=%%j 
07.
if not exist %speicherort% md %speicherort% 
08.
 
09.
-------%hier rest des programms%-------- 
10.
 
11.
:setup 
12.
title bla Setup & color 07 & mode con: lines=8 cols=60 
13.
reg add %key1% /v version /d 1.5.0.0 /f 
14.
cls 
15.
reg add %key1% /v firstrun /d 1 /f 
16.
cls 
17.
echo bla bla 
18.
set /p bla=  
19.
cls 
20.
echo Wo soll bla gespeichert werden ? 
21.
echo Bsp.: C:\Geheim\Ordner1\ 
22.
set /p speicherort=Ordnerpfad:  
23.
reg add %key1% /v password /d %pw% /f 
24.
reg add %key1% /v bla /d %speicherort% /f 
25.
cls 
26.
echo Einstellungen: 
27.
echo Passwort: %pw% 
28.
echo Logfile Speicherort: %speicherort% 
29.
echo Einstellungen beibehalten ? (J/N) - Gross schreiben! 
30.
set /p save= 
31.
if %save%==J goto next 
32.
if not %save%==J goto setup 
33.
:next 
34.
reg add %key1% /v firstrun /d 0 /f 
35.
cls 
36.
echo Fertig! Taste drcken und Datei nochmal starten. 
37.
pause >nul
Von den Bla's nicht irritieren lassen is nur zensiert sozusagen
Bitte warten ..
Mitglied: holzholer
20.05.2009 um 18:04 Uhr
Hallo,

Zeile 31
01.
if %save%==J goto next 
würde ich ersetzen mit
01.
if /I %save%==J goto next 
siehe 'IF /?'
Die /I-Option wird angegeben, um die Groß-/Kleinschreibung beim Vergleich zu ignorieren.

In Zeile 32 solltest du dir eigentlich das IF sparen können, bzw einfach GOTO setup weil entweder die var ist J oder nicht. Andernfalls gibt es ja immernoch das ELSE.

Dies soll kein Klug###n sein (ich kann selber nur bruchstückhaft scripten), sondern einfach nur ein paar Tips für die Zukunft in der Hoffnung, dass es irgendwann leichter wird.

Grüßle,
holzholer
Bitte warten ..
Mitglied: monoffel
23.05.2009 um 13:13 Uhr
Danke holzholer ^^
Ich überlege irgendwie täglich was ich an meinem Programm verbessern kann (weil ich sonst nix zutun hab)
und inzwischen ähnelt das alte Programm dem neuen nur noch in ein paar einzelnen Befehlen.
Das mit der /I option hab ich auch schon rausgefunden, ebenfalls mit else.
Aber trotzdem vielen Dank ;)
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Systemdateien
gelöst Registry-Schlüssel per Batch auslesen und in Datei schreiben (9)

Frage von Philzip zum Thema Windows Systemdateien ...

Batch & Shell
gelöst Kl. Frage: Log-File schreiben per Batch (3)

Frage von Yauhun zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-bei set in der Mitte schreiben? (5)

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch-Skript: Messdaten in Textdatei finden und in eine neue Datei schreiben (5)

Frage von habmalnefrage zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (22)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...