Batchdatei / Windowsregistrierung

Dieses Thema im Forum "Software allgemein" wurde erstellt von baspro, 7. Oktober 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. baspro

    baspro Byte

    Registriert seit:
    30. September 2002
    Beiträge:
    126
    Weis jemand von euch wie ich aus einer Batchdatei auf die
    Windowsregistrierung zugreifen kann ?
    Ich möchte verschiedene Schlüssel ändern bzw. löschen.
     
  2. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Hallo Frank !

    Das Auslesen geht mit VBS eigentlich wesentlich eleganter :

    Beispiel :
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    Daten = WshShell.RegRead("HKCU\Software\Microsoft\Internet Explorer\SearchUrl\")
    Wscript.Echo Daten

    franzkat
     
  3. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    Das @= ist tatsächlich überflüssig.
    Danke für den Tipp mit
    "MeinWert"=-
    Wenn man jetzt noch wüsste, wie man per Batch gezielt Werte aus der Registrierung ausließt.
    Gruß Frank
     
  4. baspro

    baspro Byte

    Registriert seit:
    30. September 2002
    Beiträge:
    126
    Ok Danke ich habs ausprobiert, funktioniert optimal.
    Danke für den Tip.
     
  5. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    Um Regdatein zu erzeugen markierst du in Regedit einen Schlüssel in der linken Ansicht mit der rechten Maustaste und wählst dann im Kontextmenü "exportieren" und vergibst dann einen Namen für die Regdatei die erzeugt wird.
    Danach kannst Du über Arbeitsplatz oder Explorer die erzeugt Datei öffnen, indem Du mit der rechten Maustaste auf die Datei klickst und bearbeiten wählst.
    Die Datei wird dann im Editor (Notepad) geöffnet.
    Regdateien sind reine Textdateien ohne jede Formatierung.
    Wenn Du durch gezielten export des einen oder anderen Schlüssels ein parr Dateien erzeugt hast, kannst Du die Darstellung im Editor mit der darstellung in Regedit vergleichen.
    Über diesen Weg wird Dir sicher von alleine klar wie eine Regdatei aufgebaut ist.
    Die Struktur ist nämlich recht einfach.
    Dann kannst Du mal anfangen per Regedit eigene unnützte Schlüssel und Werte hinzuzufügen, diese zu exportieren, die dann erzeugte Regdatei zu verändern, per Doppelklick wieder zu importieren und sehen wie es sich in Regedit auswirkt. Nach ein paar Versuchen kannst Du sicher eigene Regdateien schreiben, die genau das machen was Du willst.
    Übrigens muss Regedit nicht geschlossen werden wenn per Doppelklick Regdateien importierst.
    Wenn Du Regedit dabei offen lässt und an der entsprechenden Stelle bist, kannst Du die Auswirkungen gleich sehen und beurteilen ob das Gewünschte eingetreten ist.
    Sei unbedingt sorgfältig damit, beim import wird nicht geprüft, ob Du Dir damit Dein System zerschießt oder etwas vernünftiges machst.
    Aber keine Angst, wenn Du\'s langsam angehst wird schon nix passieren.

    Nachtrag:
    Bei meinem Beispiel
    [-HKEY_CURRENT_USER\Schlüssel\Unterschlüssel]@=
    ist das @= tatsächlich überflüssig um den Unterschlüssel zu löschen.

    Gruß Frank
     
  6. baspro

    baspro Byte

    Registriert seit:
    30. September 2002
    Beiträge:
    126
    Wo kann ich das in der Reg-Datei eintragen ???
     
  7. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Delete\' findet normalerweise kein Umbruch statt.
     
  8. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Hallo Frank !

    Ich denke, dass das @-Zeichen in der Syntax überflüssig ist und der jeweilige Zweig auch ohne dieses Zeichen gelöscht wird.Das @-Zeichen ist ja in der Registry gemeinhin das Symbol für den Standardwert.Wenn der Zweig weg ist, ist dessen Standardwert auch weg.
    Weniger bekannt ist, wie man einen einzelnen Wert löscht.Dabei gilt folgende Syntax :

    Regedit 4 //man beachte das schon oben zum Header Gesagte
    [Hkey_Local_Machine\MeinSchlüssel]
    "MeinWert"=- //Man beachte das abschließende Minus !

    Hierbei ist es egal , ob es sich bei "MeinWert" um eine Zeichenfolge, einen Binärwert oder einen DWORD-Wert handelt.Auch Groß-und Kleinschreibung spielt keine Rolle.

    franzkat
     
  9. rapmaster

    rapmaster Halbes Gigabyte

    Registriert seit:
    21. Juli 2002
    Beiträge:
    5.181
    mit Vb script geht leichter.
    aber trotzdem weiß ich nicht wie.
     
  10. Pedant

    Pedant Byte

    Registriert seit:
    28. September 2002
    Beiträge:
    106
    Noch ein paar Tipps:

    Wenn Du aus der linken Ansicht bei Regedit einen Schlüssel löschen möchtest, dann kannst Du in die Reg-Datei folgendes eintragen:
    [-HKEY_CURRENT_USER\Schlüssel\Unterschlüssel]@=
    Damit verschwindet der Eintrag "Unterschlüssel" und alles was er enthält.
    Dabei ist das - vorne wichtig und das @= am Ende
    Lösch Dir aber nicht zuviel weg :-)
    Wie Du aus der rechten Ansicht gezielt einen Schlüssel löschen kannst, weiß ich leider nicht.
    Alle Einträge rechts bekommst Du weg, wenn Du den übergeordneten Schlüssel links löschst und direkt wieder anlegst..
    Also so etwa:
    [-HKEY_CURRENT_USER\Schlüssel\Unterschlüssel]@=
    [HKEY_CURRENT_USER\Schlüssel\Unterschlüssel]
    @=

    Die Reg-Dateien brauchen eine Überschrift
    bei XP ist das
    Windows Registry Editor Version 5.00
    wenn Du statt dessen
    REGEDIT4
    als Überschrift benutzt, dann ist die Datei für XP und auch für ältere Systeme zu benutzen.
    Sonst gibt es bei älteren Systemen eine Fehlermeldung und die Datei wird nicht importiert.

    Falls Du weißt wie man aus der rechten Ansicht gezielt einen Schlüssel löschen kann, würde mich das sehr interessieren.

    Gruß Frank
     
  11. franzkat

    franzkat CD-R 80

    Registriert seit:
    16. Juni 2002
    Beiträge:
    9.246
    Erstelle Dir zunächst eine reg-Datei, die entweder die Daten für die Registry neu einliest oder sie löscht.Wenn Du dies erledigt hast ,kannst Du folgende Befehlszeile in eine Batch einbauen :
    regedit.exe /s meinpfad\meinereg.reg

    Der Parameter /s bedeutet silent,d.h. die Aktion wird ohne Nachfrage von regedit erledigt.

    franzkat
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen