Jak zmodyfikować istniejącą wartość klucza rejestru z cmd?
Istnieje wiele opcji i przełączników, dzwonków i gwizdków dla polecenia Reg. Dostępne są opcje zapytań, dodawania i usuwania kluczy, podkluczy i nazw wartości. Ale jak zmodyfikować dane istniejącej nazwy wartości? Czy całkowicie usuwasz nazwę wartości, a następnie dodajesz ją ponownie i ponownie wpisujesz zmodyfikowaną wartość / dane? To wydaje się bardzo kłopotliwe ...
Nie interesuje mnie żadna automatyzacja skryptów / partii, przynajmniej nie teraz, chcę po prostu prostej edycji rejestru za pomocą polecenia cmd Reg. Bez konieczności niszczenia klucza, aby dodać go sekundę później z dodatkowymi danymi. Ten sam rodzaj operacji, który możesz wykonać w Regedit.
Oto przykład, który pobudzi proces myślenia.
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: true
Teraz jest w porządku, ale co jeśli będę musiał zmienić dane wartości z „prawda” na „fałsz”. Zamiast tego otrzymuję to:
Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: false
Jakie są opcje i składnia, aby to zrobić z cmd? ....
Aktualizacja:
Właśnie zdałem sobie sprawę, że powyższy przykład mógł być po prostu zbyt łatwy ...
W powyższym przykładzie mogę po prostu wykonać następujące czynności:
reg delete HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone
reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Mogę sobie pozwolić na całkowite usunięcie wartości, a następnie dodanie jej ponownie, ponieważ zawarte w niej dane są bardzo małe. To tylko ciąg znaków „prawda” lub „fałsz”. Nie jest to zbyt trudne do odtworzenia.
Oto trudniejszy przykład z większą zawartością danych:
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Value name: Path
Value type: Reg_Sz
Data: C:\Program Files (x86)\ImageMagick-6.8.5-Q16;C:\PROGRA~2\GTK2-R~1\bin;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Common Files\Acronis\SnapAPI\;C:\Windows\System32\WindowsPowerShell\v1.0\;"C:\Program Files (x86)\WinHasher";C:\Program Files (x86)\Android\android-sdk\tools\;C:\Program Files (x86)\Android\android-sdk\platform-tools\;C:\Program Files (x86)\GTK2-Runtime\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin\;C:\Program Files (x86)\Common Files\Teleca Shared;C:\Program Files (x86)\Notepad++
Chcę usunąć tylko części treści danych. W szczególności chcę tylko usunąć ostatnią ścieżkę wyszukiwania, C: \ Program Files (x86) \ Notepad ++.
Jak sobie z tym poradzić ?? ...
Nie oczekujesz, że powtórzę to wszystko ?? ......
Odpowiedzi:
Użyj
REG ADD
z parametrem „/ f”, aby wymusić zastąpienie.REG ADD /?
wyjaśnia parametry.Aby wstawić nową wartość lub przełączyć wartość ciągu z „false” na „true”, użyj następującego polecenia:
Przykład, który odczytuje istniejącą wartość i dołącza ciąg przed zapisaniem go:
Uwaga: W tej próbce założono, że stara wartość i nowa wartość nie mają spacji. W przeciwnym razie należy dodać cudzysłowy i zmienić parametr „tokeny”. Dodatkowe sprawdzanie błędów pominięto dla zwięzłości. Jednak cały kod manipulujący rejestrem z pewnością musi wykonać odpowiednie sprawdzenie błędów.
źródło
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v Path /d ;C:\Program Files (x86)\Some_software /f
aby dołączyć;C:\Program Files (x86)\Some_software
na końcu ciągu?reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false
Uaktualnienie wartości Czy istnieje, nadpisać (Tak / Nie)? Więc bez przełącznika / f zapyta cię, czy chcesz zastąpić.Możesz również
REG import foo.reg
w którymfoo.reg
znajduje się plik zawierający zwykłe informacje rejestru, z których eksportowałeśregedit.exe
.W twoim przykładzie byłoby to coś takiego:
Więcej informacji jest dostępnych w tym artykule Microsoft Technet .
źródło