Supportnet Computer
Planet of Tech

Supportnet / Forum / PC-Sonstiges

Batchdatei für Registrierung





Frage

Hi! Hat einer von euch Erfahrung im Erstellen einer Batchdatei, um bestimmte Registriereinträge automatisch zu löschen? Oder muss man eine .reg Datei erzeugen, um bestimmte Einträge zu löschen. Wenn ja, wie muss man es einstellen? Es wird ja wohl kaum mit dem Befehl del Registrierungseintrag XY funktionieren

Antwort 1 von Sascha H.

Hat keiner eine Idee?

Antwort 2 von asok

Doch. Du kannst das am besten mit dem Windows Scripting Host lösen. Erstelle eine Datei mit der Endung .vbs, die etwa so aussieht:


Const ROOTKEY = "HKLM\SOFTWARE\Apple Computer, Inc.\QuickTime\"

subkeys = array("ActiveX\", "Installed MIME Types\", "Installed Plugins\", "InstallState")

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

For Each key In subkeys
  WshShell.RegDelete ROOTKEY & key
Next


Im Prinzip musst du nur noch den root key und das Array mit den Subkeys anpassen. Beachte dass subkeys, die nicht auf "\" enden, Werte sind. Reply oder mail, wenn du noch fragen hast.

Antwort 3 von Sascha H.

Hi Asok!

Danke erst mal für Deine Hilfe.
Kennst Du eine alternative Möglichkeit, diverse Registriereinträge zu löschen, wie z.B. über eine .reg Datei? Kenne mich mit Visual Basic Scripts nicht so gut aus, darum wäre mir eine andere Methode lieber.

MfG, Sascha

Antwort 4 von asok

Soweit ich weiss, kann man via REG-Datei nur Schlüssel importieren, nicht aber löschen.
Das Skript oben ist eigentlich genau das, was du brauchst. Aber falls du dir bei den notwendigen Anpassungen nicht sicher bist, geht's auch anders. Nimm diese Skriptdatei und nenne sie bspw. delregk.vbs:


' delregk.vbs
Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

If WScript.Arguments.Count = 1 Then
  WshShell.RegDelete WScript.Arguments(0)
End If


Diese Datei löscht den Schlüssel, den du als Argument angibst. Das Skript kannst du dann auch in einer Batchdatei benutzen:


REM * Batch-Datei
cscript.exe delregk.vbs "HKEY_LOCAL_MACHINE\SOFTWARE\Apple Computer, Inc.\QuickTime\"

cscript.exe delregk.vbs "HKEY_CURRENT_USER\Was\auch\immer"

REM * ... usw.


Wenn dein Schlüssel Leerzeichen enthält, brauchst du die Anführungszeichen zwingend. Jetzt kannst du pro Batch-Aufruf einen Schlüssel löschen. Hilft dir das weiter?

Antwort 5 von Undertaker

Hi,

um einen Schlüssel mit seinem gesamten Inhalt zu löschen, brauchst Du dem Pfad nur ein Minus voran stellen:

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Test]

Gruß
Undertaker

Antwort 6 von Sascha H.

Hi!
Ich habe mal irgendwo gelesen, dass man das auch mit Hilfe der Reg Datei schaffen kann, wenn man nun vor den bestimmten Einträgen ein Minus setzt.
Also habe ich Dich jetzt richtig verstanden, dass dieses oben genannte Script "delregk.vbs" zum Löschen benutzen kann und in der Batchdatei einfach nur den Skriptnamen und dann den
entsprechenden Key eingeben muss?
Wie sieht das mit dem Verzeichnis für die Datei cscript.exe bzw. die delregk.vbs aus? Müssen die zwangsläufig im gleichen Verzeichnis wie die Batchdatei sein, oder kann man den Ordner dort angeben. z.B.

rem *datei.bat
c:\windows\cscriptordner\cscript.exe c:\vbsdatei\delregk.vbs "Schlüssel XY"


Antwort 7 von Sascha H.

Hi Undertaker!
Habe erst zu spät gelesen, dass du das mit dem Minus schon vorgeschlagen hast.
Habe übrigens in einem anderen Forum eben besagten Trick mit dem Minus gefunden. Zitat:
Wenn du Schlüssel löschen willst, dann geht das relativ einfach:

REGEDIT4
[-HKEY_CLASSES_ROOT\XXYYZZ]

in eine Datei lösche.reg schreiben und diese mit der Registry zusammenführen (regedit /S lösche.reg) löscht den Schlüssel HKCR\XXYYZZ mitsamt Inhalt.

Für Werte gibt es auch so einen Trick, aber den finde ich jetzt leider nicht...



Antwort 8 von Undertaker

Hi,

für Werte einfach nach dem Gleichheitszeichen das Minus eintragen:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Test]
Test=-


Gruß
Undertaker

Antwort 9 von asok

Zitat:

Wie sieht das mit dem Verzeichnis für die Datei cscript.exe bzw. die delregk.vbs aus? Müssen die zwangsläufig im gleichen Verzeichnis wie die Batchdatei sein, oder kann man den Ordner dort angeben. z.B.


cscript.exe nicht, das VBS-File schon. Aber die Methode mit dem "-" ist einfacher, ich kannte die nur noch nicht.

Antwort 10 von Sascha H.

Dann möchte ich mich recht herzlich für die Hilfe von allen bedanken.
Werde es heute Abend mal ausprobieren.

MfG, Sascha