2008-09-24 21 views
40

क्या एक .bat/.cmd स्क्रिप्ट के माध्यम से रजिस्ट्री मान (चाहे स्ट्रिंग या DWORD) को संशोधित करना संभव है?क्या एक .bat/.cmd स्क्रिप्ट के माध्यम से रजिस्ट्री प्रविष्टि को संशोधित करना संभव है?

+0

@ शेरशा एफएन बताते हैं, आप REG.EXE का उपयोग करने के लिए प्रशासक होना चाहिए। क्या यह गैर-व्यवस्थापक के रूप में ऐसा करने का तरीका है और 'पहुंच अस्वीकार कर दिया गया है' संदेश से बचें? –

उत्तर

37

आप REG आदेश का उपयोग कर सकते हैं। http://www.ss64.com/nt/reg.html से:

Syntax: 

    REG QUERY [ROOT\]RegKey /v ValueName [/s] 
    REG QUERY [ROOT\]RegKey /ve --This returns the (default) value 

    REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f] 
    REG ADD [ROOT\]RegKey /ve [/d Data] [/f] -- Set the (default) value 

    REG DELETE [ROOT\]RegKey /v ValueName [/f] 
    REG DELETE [ROOT\]RegKey /ve [/f] -- Remove the (default) value 
    REG DELETE [ROOT\]RegKey /va [/f] -- Delete all values under this key 

    REG COPY [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey 

    REG EXPORT [ROOT\]RegKey FileName.reg 
    REG IMPORT FileName.reg 
    REG SAVE [ROOT\]RegKey FileName.hiv 
    REG RESTORE \\MachineName\[ROOT]\KeyName FileName.hiv 

    REG LOAD FileName KeyName 
    REG UNLOAD KeyName 

    REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s] 
    REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s] 

Key: 
    ROOT : 
     HKLM = HKey_Local_machine (default) 
     HKCU = HKey_current_user 
     HKU = HKey_users 
     HKCR = HKey_classes_root 

    ValueName : The value, under the selected RegKey, to edit. 
       (default is all keys and values) 

    /d Data : The actual data to store as a "String", integer etc 

    /f  : Force an update without prompting "Value exists, overwrite Y/N" 

    \\Machine : Name of remote machine - omitting defaults to current machine. 
       Only HKLM and HKU are available on remote machines. 

    FileName : The filename to save or restore a registry hive. 

    KeyName : A key name to load a hive file into. (Creating a new key) 

    /S  : Query all subkeys and values. 

    /S Separator : Character to use as the separator in REG_MULTI_SZ values 
        the default is "\0" 

    /t DataType : REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ 

    Output : /od (only differences) /os (only matches) /oa (all) /on (no output) 
+16

यह उत्तर बहुत अस्पष्ट है और भले ही यह सभी संभावनाओं (जो अच्छा है) सूचीबद्ध करता है, यह स्पष्ट रूप से ओपी के प्रश्न का उत्तर नहीं देता है जैसे @ nray के उत्तर –

4

आप एक .reg फ़ाइल बना सकते हैं और उस पर कॉल शुरू कर सकते हैं। प्रारूप को देखने के लिए आप रजिस्ट्री के किसी भी हिस्से को .reg फ़ाइल के रूप में निर्यात कर सकते हैं।

यहां स्वरूप:

http://support.microsoft.com/kb/310516

यह अन्य सॉफ्टवेयर की स्थापना के बिना किसी भी Windows मशीन पर चलाया जा सकता है।

24

हां, आप reg कमांड का उपयोग करके स्क्रिप्ट कर सकते हैं। उदाहरण:

reg add HKCU\Software\SomeProduct 
reg add HKCU\Software\SomeProduct /v Version /t REG_SZ /d v2.4.6 

यह कुंजी HKEY_CURRENT_USER\Software\SomeProduct बन जाएगा, और जोड़ने के एक स्ट्रिंग मान "v2.4.6" उस कुंजी के लिए "संस्करण" नाम दिया है।

reg /? विवरण है।

1

हां। आप रजिस्ट्री मानों को जोड़ने, हटाने या क्वेरी करने के लिए ओएस के साथ reg.exe का उपयोग कर सकते हैं। Reg.exe में एक स्पष्ट संशोधित आदेश नहीं है, लेकिन आप इसे हटाकर और फिर जोड़कर कर सकते हैं।

1

reg.exe के अतिरिक्त, मैं अत्यधिक अनुशंसा करता हूं कि आप पावरहेल भी देखें, इसकी रजिस्ट्री हैंडलिंग में इसकी अधिक सक्षम है।

+0

पावरशेल स्क्रिप्ट को पहले क्लाइंट मशीन पर सक्षम होना चाहिए 'सेट-एक्जिक्यूशन पॉलिसी' का उपयोग करके। मेरे पास बैच स्क्रिप्ट है जो निष्पादन नीति को RemoteSigned पर सेट करने के लिए रजिस्ट्री को संशोधित करती है। लाभ यह है कि कोई उपयोगकर्ता बिना किसी आदेश के पावरशेल स्क्रिप्ट को सक्षम और चला सकता है। वे बैच फ़ाइल को डबल-क्लिक कर सकते हैं। –

88

@Franci Penov - संशोधित /f साथ अधिलेखित के अर्थ में ही संभव है, जैसे

reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes" 
+11

+1/f के लिए +1 मैंने इसके लिए कुछ स्क्रिप्ट लिखी हैं लेकिन बिना/एफ यह दर्द था; "y + [वापसी]" – amyassin

+8

टाइप करने के लिए स्क्रिप्ट चलाने के दौरान मुझे वहां रहने की आवश्यकता थी। यह स्वीकार्य उत्तर होना चाहिए क्योंकि यह बताता है कि मौजूदा कुंजी को कैसे संशोधित किया जाए। –

6

इस तरह आप कोई शीघ्र हाँ बिना, रजिस्ट्री को संशोधित कर सकते या और करने के लिए मत भूलना है व्यवस्थापक के रूप में चलाने के

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc /v Valuename /t REG_SZ /d valuedata /f 

नीचे मेरे डिफ़ॉल्ट ब्राउज़र के रूप में इंटरनेट एक्सप्लोरर स्थापित करने के लिए एक वास्तविक उदाहरण है

reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice /v ProgId /t REG_SZ /d IE.HTTPS /f 

/च बल: संकेत दिए बिना एक अद्यतन बाध्य करें "मान मौजूद है, के ऊपर लिख हां/नहीं"

/डी डाटा: वास्तविक डेटा के रूप में एक "स्ट्रिंग", पूर्णांक आदि स्टोर करने के लिए

/v मूल्य: मूल्य का नाम उदा।

/टी डेटाटाइप: REG_SZ (डिफ़ॉल्ट) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ

पढ़ें, सेट बारे में और जानें या रजिस्ट्री कुंजी और मूल्यों को हटाना, बचाने के लिए और एक .REG फ़ाइल से पुनर्स्थापित करें।here

संबंधित मुद्दे

 संबंधित मुद्दे