Regestryeinträge und Windows Einstellungen per Batch
hinzufügen
Hallo zusammen,
ich hoffe hier ist jemand der sich mit Batchdateien gut
auskennt.
Ich würde sagen meine Batchkenntnisse sind sagen wir es mal so
ich weiss mehr als wie Batch geschrieben wird, aber auch nicht
viel mehr
Genau genommen hat das was Du machst ja auch mit Batch wenig zu tun, Du kämpfst mit der Aufrufsyntax des „reg“ Befehls, den Du genauso gut in die Kommandozeile tippen kannst.
Und da gäbe es dann den reg add /? der das Rätsel lösen würde, wenn /v, /t und /d nicht angegeben werden, wird der Schlüssel (so nennt sich ein „Verzeichnis“ in der Registry) erstellt.
reg add „HKCU\SOFTWARE\Test“
reg add „HKCU\SOFTWARE\Test“ /v testwert /t REG_DWORD /d 0 /f
Ich gebe den Anderen allerdings völlig recht: Batches sind äußerst primitive Vehikel und eigen sich nur für äußerst primitive Aufganemstellungen. Richtig sauber müsstest Du nämlich programmieren:
- wenn der Schlüssel nicht existiert, erstelle den Schlüssel
- wenn der Wert nicht existiert, erstelle ihn
- setze den Wert auf null
Das problem: bei batches wie dieser steckt die ganze Intelligenz unveränderbar und uneinsehbar im externen „reg“ Kommando, und das kann allenfalls einen lächerlichen Fehlerstatus und/oder umgeleitete Bildschirmausgaben zurückgeben, das sind keine guten Aussichten für intelligenten Code und/oder ordentliches Fehlerhandling. Also wird man, wenn man den Code mehrfach lauen lässt, ab dem 2. Mal einen hässlichen Fehler bekommen dass der Key bereits existiert. Natürlich kann man ihn ignorieren, aber man sieht bereits wo das hinführt.
Ganz zu schweigen von den primitivsten Werkzeugen zur Fehlersuche (ein primitiver Debugger der Zeilen Steppen und Variablen anschauen kann) sowie ein einfacher Editor mit Befehlsreferenz und automatischer Code-Formatierung - alles nicht vorhanden bei Batches, daher ist die Fehlersuche eine echte Herausforderung, wenn die Programme komplizierter werden. und die Laufzeit längerer Programme ist sowieso jenseits jeder Diskussion. Und letztlich ist die Batch „Sprache“ auf Grund der vielen angestückelten Ergänungen, mit denen die Entwickler die gröbsten Schwächen ausbügeln wollten, zu einem absurd komplizierten und inkonsistenten Syntaxmonster gewuchert. Mir kommt es vor als ob jemand versuchen würde, eine Schweizer Uhr mit einem Eisenschlägel, einer Brechstange und einem Bolzenschneider zu reparieren.
Du bist mit irgendeiner „richtigen“ Programmiersprache, die nicht mal was kosten muss, 100 mal besser bedient.
Wenn Du mit Bordmitteln auskommen musst, heißen die ALternativen „Windows Script Host“ (WSH) (XP, Vista, W7) und „Powershell“ (Vista, W7). Erstere entspricht eher der ablauforientierten/batch ähnlichen Denkweise, zweitere lehnt sich eher an objektorientierte Konzepte an. Für beide gibt es free oder für wenige Euros Entwicklungsumgebungen mit vernünftigen Editoren und Debuggern, mir denen man auch größere Projekte stemmen kann.
Armin.