Registry Key auslesen, ändern und wieder einfügen
Hallo zusammen,
nachdem ich über die Suche nichts richtiges gefunden habe, muss ich mein Problem hier schildern.
Vorneweg sei gesagt, dass ich auf diesem Gebiet Anfänger bin...
Ich möchte mit einem Script einen bestimmten Wert eines Reg-Key bearbeiten.
Und zwar habe unter HKLM\Software\Microsoft\Windows\CurrentVersion einen Eintrag der sich DevicePath nennt.
Dort sind viele Pfadangaben hinterlegt. Der Wert des Eintrags sieht dann ungefähr so aus:
"C:\Windows\Drivers\Printer;C:\Windows\Drivers\USB;C:\Windows\Drivers\Video" usw...
Ich betreue hier eine Vielzahl von Client, bei denen diese Pfade immer anders aussehen können oder auch eine andere Reihenfolge haben können.
Nun möchte ich aber einen Pfadnamen ändern.
Z.B. aus C:\Windows\Drivers\Printer wird C:\Windows\Drivers\Drucker
Gleichzeitig soll der Eintrag an der Stelle bleiben, wo er vorher auch war, also in diesem Fall an 1. Stelle.
Kann mir jemand bei diesem Problem helfen? Ich habe echt keine Ahnung wie ich da ran gehen soll..
Danke schonmal im Voraus!
kafri84
nachdem ich über die Suche nichts richtiges gefunden habe, muss ich mein Problem hier schildern.
Vorneweg sei gesagt, dass ich auf diesem Gebiet Anfänger bin...
Ich möchte mit einem Script einen bestimmten Wert eines Reg-Key bearbeiten.
Und zwar habe unter HKLM\Software\Microsoft\Windows\CurrentVersion einen Eintrag der sich DevicePath nennt.
Dort sind viele Pfadangaben hinterlegt. Der Wert des Eintrags sieht dann ungefähr so aus:
"C:\Windows\Drivers\Printer;C:\Windows\Drivers\USB;C:\Windows\Drivers\Video" usw...
Ich betreue hier eine Vielzahl von Client, bei denen diese Pfade immer anders aussehen können oder auch eine andere Reihenfolge haben können.
Nun möchte ich aber einen Pfadnamen ändern.
Z.B. aus C:\Windows\Drivers\Printer wird C:\Windows\Drivers\Drucker
Gleichzeitig soll der Eintrag an der Stelle bleiben, wo er vorher auch war, also in diesem Fall an 1. Stelle.
Kann mir jemand bei diesem Problem helfen? Ich habe echt keine Ahnung wie ich da ran gehen soll..
Danke schonmal im Voraus!
kafri84
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 65686
Url: https://administrator.de/contentid/65686
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo kafri84!
Das könnte etwa so gehen:
Anmerkung: Falls einer der eingetragenen Pfade ein "!" enthält, können die Variablen %old% und %new% nicht verwendet werden und der Batch müsste etwa so aussehen:
Grüße
bastla
Das könnte etwa so gehen:
@echo off & setlocal enabledelayedexpansion
set "Key=HKLM\Software\Microsoft\Windows\CurrentVersion"
set "Value=DevicePath"
set "old=C:\Windows\Drivers\Printer"
set "new=C:\Windows\Drivers\Drucker"
for /f "tokens=3" %%i in ('reg query %Key% /v %Value%') do set "Data=%%i"
reg add %Key% /v %Value% /t REG_EXPAND_SZ /d !Data:%old%=%new%! /f>nul
@echo off & setlocal
set "Key=HKLM\Software\Microsoft\Windows\CurrentVersion"
set "Value=DevicePath"
for /f "tokens=3" %%i in ('reg query %Key% /v %Value%') do set "Data=%%i"
reg add %Key% /v %Value% /t REG_EXPAND_SZ /d %Data:C:\Windows\Drivers\Printer=C:\Windows\Drivers\Drucker% /f>nul
Grüße
bastla
Hallo kafri84!
Dann vielleicht so:
Grüße
bastla
Dann vielleicht so:
@echo off & setlocal
set "Key=HKLM\Software\Microsoft\Windows\CurrentVersion"
set "Value=DevicePath"
for /f "tokens=2*" %%i in ('reg query %Key% /v %Value%') do set "Data=%%j"
reg add %Key% /v %Value% /t REG_EXPAND_SZ /d "%Data:C:\Windows\Drivers\Printer=C:\Windows\Drivers\Drucker%" /f>nul
Grüße
bastla