मैं cmd ​​से मौजूदा रजिस्ट्री कुंजी मान नाम का डेटा कैसे संशोधित करूं?


19

मैं cmd ​​से मौजूदा रजिस्ट्री कुंजी मान को कैसे संशोधित करूं?

Reg कमांड के लिए बहुत सारे विकल्प और स्विच, घंटियाँ और सीटी हैं। कुंजियों, उपकुंजी और मान नामों को क्वेरी करने, जोड़ने और हटाने के विकल्प हैं। लेकिन आप किसी मौजूदा मूल्य नाम के डेटा को कैसे संशोधित करते हैं? क्या आप मूल्य नाम को पूरी तरह से हटा देते हैं, और फिर इसे फिर से जोड़ते हैं और संशोधित मूल्य / डेटा को फिर से टाइप करते हैं? जो बहुत ही बोझिल लगता है ...

मुझे किसी स्क्रिप्ट / बैच स्वचालन में कोई दिलचस्पी नहीं है, कम से कम अब नहीं, मैं सिर्फ cmd Reg कमांड के माध्यम से सादे सरल रजिस्ट्री संपादन चाहता हूं। एक कुंजी को नष्ट करने की आवश्यकता के बिना बस कुछ अतिरिक्त डेटा के साथ इसे बाद में जोड़ने के लिए। उसी तरह का ऑपरेशन आप रीडगिट में कर सकते हैं।

आपके लिए सोच की प्रक्रिया को प्रोत्साहित करने के लिए एक उदाहरण है।

Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: true

अब यह ठीक है, लेकिन क्या होगा यदि मुझे मूल्य डेटा को "सच" से "झूठे" में बदलना होगा। ताकि मुझे इसके बदले यह मिले:

Key: HKEY_CURRENT_USER\Software\Citrix\Receiver
Value type: reg_sz
Value name: UpgradeDone
Value data: false

Cmd से करने के लिए क्या विकल्प और वाक्यविन्यास हैं?

अपडेट करें:

मुझे अभी पता चला है कि ऊपर दिया गया उदाहरण अभी बहुत आसान है ...

उपरोक्त उदाहरण में मैं केवल निम्नलिखित कार्य कर सकता हूं:

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

मैं मूल्य को पूरी तरह से हटा सकता हूं, और फिर इसे फिर से जोड़ सकता हूं, क्योंकि इसके भीतर मौजूद डेटा बहुत छोटा है। यह "सच" या "असत्य" जैसा एक स्ट्रिंग है। इसे दोबारा बनाना भी मुश्किल नहीं है।

यहां अधिक डेटा सामग्री के साथ एक कठिन उदाहरण दिया गया है:

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++

मैं डेटा सामग्री के केवल कुछ हिस्सों को निकालना चाहता हूं। विशेष रूप से, मैं केवल अंतिम खोज पथ, C: \ Program Files (x86) \ Notepad ++ को निकालना चाहता हूं।

आप इससे कैसे निपटेंगे ?? ...

आप मुझसे यह सब टाइप करने की उम्मीद नहीं करते हैं ?? ......


क्या आपका प्रश्न विशेष रूप से कमांड लाइन, या किसी मूल्य से PATH के संपादन के बारे में है? साथ ही, किसी भी reg मान को बदलना या जोड़ना / जोड़ना आसान है, लेकिन मूल्य के कुछ हिस्सों को संशोधित / हटाना अधिक प्रयास की आवश्यकता होगी।
करण

जवाबों:


37

REG ADDओवरराइट करने के लिए "/ f" पैरामीटर के साथ उपयोग करें ।

REG ADD /? मापदंडों की व्याख्या करता है।

REG ADD KeyName [/v ValueName | /ve] [/t type] [/s Separator] [/d Data] [/f]

KeyName     [\\Machine\]FullKey

Machine     Name of remote machine - omitting defaults to the current machine 
            Only HKLM and HKU are available on remote machines
FullKey     ROOTKEY\SubKey ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ] SubKey 
            The full name of a registry key under the selected ROOTKEY
/v          The value name, under the selected Key, to add
/ve         adds an empty value name <no name> for the key
/t          RegKey data types
            [ REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN | REG_DWORD | 
              REG_BINARY | REG_DWORD_LITTLE_ENDIAN | REG_NONE | REG_EXPAND_SZ ]
            If omitted, REG_SZ is assumed
/s          Specify one character that you use as the separator in your data 
            string for REG_MULTI_SZ. If omitted, use "\0" as the separator
/d          The data to assign to the registry ValueName being added
/f          Force overwriting the existing registry entry without prompt

एक नया मान सम्मिलित करने या "गलत" से "सत्य" तक एक स्ट्रिंग मान टॉगल करने के लिए, इस तरह से एक कमांड का उपयोग करें:

reg add HKCU\Software\Citrix\Receiver /t REG_SZ /v UpgradeDone /d true /f

उदाहरण जो एक मौजूदा मूल्य को पढ़ता है और इसे वापस लिखने से पहले कुछ स्ट्रिंग को जोड़ता है:

set append=XXXXXX
set key=HKCU\Software\myTest
set value=myValue
set oldVal=

for /F "skip=2 tokens=3" %%r in ('reg query %key% /v %value%') do set oldVal=%%r
echo previous=%oldVal%

set newVal=%oldVal%%append% 

reg add %key% /v %value% /d %newVal% /f

नोट: यह नमूना मानता है कि पुराने मूल्य और नए मूल्य में कोई रिक्तता नहीं है। अन्यथा किसी को उद्धरण जोड़ना होगा और "टोकन" पैरामीटर बदलना होगा। संक्षिप्तता के लिए छोड़ी गई अतिरिक्त त्रुटि जाँच। हालाँकि, सभी रजिस्ट्री हेरफेर कोड निश्चित रूप से पर्याप्त त्रुटि जाँच करना चाहिए।


तो ... एक "अधिलेखित" मजबूर करने से वास्तव में मान नाम पर डेटा संलग्न होता है? ... यह मौजूदा डेटा को अधिलेखित नहीं करता है? ...
समीर

तो, ऊपर मेरे दूसरे उदाहरण का उपयोग करते हुए, आप कह रहे हैं कि मैं स्ट्रिंग के अंत में reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment /v Path /d ;C:\Program Files (x86)\Some_software /fसंलग्न ;C:\Program Files (x86)\Some_softwareकरने के लिए क्या कर सकता हूं ?
समीर

नहीं, "REG / ADD" सिर्फ आवेषण या अधिलेखित करता है। अपील करने के लिए, आपको मूल्य "REG / QUERY" करना होगा, वांछित मूल्य की गणना करें और इसे वापस "REG / ADD" करें।
एक्सल केम्पर

हाँ, यह मामला लगता है। मैंने बस यही कोशिश की। reg add HKEY_CURRENT_USER\Software\Citrix\Receiver /v UpgradeDone /t Reg_Sz /d false वैल्यू अपग्रेडडॉन मौजूद है, ओवरराइट करें (हां / नहीं)? तो / f स्विच के बिना यह आपसे पूछेगा कि क्या आप ओवरराइट करना चाहते हैं।
समीर

क्या आप बता सकते हैं कि मौजूदा वैल्यू नाम पर डेटा कैसे जोड़ा जाए? "गणना" से आपका क्या तात्पर्य है?
समीर

2

आप उस फ़ाइल को भी देख सकते हैं REG import foo.regजिसमें foo.regसामान्य रजिस्ट्री जानकारी होती है जिससे आप निर्यात करेंगे regedit.exe

आपके उदाहरण में, यह कुछ इस तरह होगा:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]
"Path"="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++"

इस Microsoft Technet लेख में अधिक जानकारी उपलब्ध है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.