विंडोज में पर्यावरण चर में SETX और SET के बीच अंतर क्या है


63

बीच क्या अंतर है SETXऔर SET?

मेरी समझ के अनुसार:
दोनों का उपयोग पर्यावरण चर सेट करने के लिए किया जाता
SETXहै जो उपयोगकर्ता चर के लिए है।
SETशेल चरों के लिए है।


3
कोशिश करो SET /?और SETX /?- कि तुम कुछ विचार देना चाहिए।
इस्ज़

2
इसके अलावा, SET और SETX के लिए SS64 संदर्भ देखें । SS64 कई भाषाओं और कमांड परिवेशों के लिए एक महान कमांड संदर्भ है - मुझे यह विशेष रूप से CMD और PowerShell के लिए उपयोगी लगता है।
इस्ज़



जवाबों:


83

मुझे डर है कि यह इतना आसान नहीं है। पर्यावरण के चर, दायरे से सीमित नहीं हैं, जैसा कि आप सुझाव देते हैं, लेकिन आप सही हैं कि क्रियाओं की तुलना करते समय चर में मूल्य का जीवनकाल अलग है।

Setवर्तमान शेल (विंडो के) पर्यावरण मूल्यों को संशोधित करता है, और परिवर्तन तुरंत उपलब्ध है, लेकिन यह अस्थायी है। परिवर्तन चल रहे अन्य शेल को प्रभावित नहीं करेगा, और जैसे ही आप शेल को बंद करते हैं, नया मान खो जाता है जब तक कि आप फिर से सेट नहीं करते।

setxमान को स्थायी रूप से संशोधित करता है, जो भविष्य के सभी गोले को प्रभावित करता है, लेकिन पहले से चल रहे गोले के वातावरण को संशोधित नहीं करता है। आपको शेल से बाहर निकलना होगा और परिवर्तन उपलब्ध होने से पहले इसे फिर से खोलना होगा, लेकिन जब तक आप इसे फिर से नहीं बदलते तब तक मूल्य संशोधित रहेगा।

एक उदाहरण के लिए यहाँ देखें: http://batcheero.blogspot.com/2008/02/set-and-setx.html


13
यह बहुत अच्छी तरह से लिखा गया है, मैं हालांकि जोड़ूंगा, उस सेटक्स ने रजिस्ट्री को बदल दिया
बार्लोप

यह वास्तव में यहाँ वर्णित से भी कम सरल है। मनमौजी होने के लिए "अस्थिर" पर्यावरण चर हैं। और, कुछ परिस्थितियों में, SET कमांड द्वारा दिखाए गए चर की सूची इस बात पर निर्भर करती है कि उपयोगकर्ता ने "उन्नत" कमांड संकेत दिया है या नहीं।
kreemoweet

10

वास्तव में हम तीन स्कोप पर परिवर्तनशील सेट कर सकते हैं:
1. शेल
2. उपयोगकर्ता
3. सिस्टम (मशीन) या ग्लोबल

सेट: अस्थायी के लिए वर्तमान शेल गुंजाइश बनाएं या अपडेट करें।

C:\Users\977246>set /?
Displays, sets, or removes cmd.exe environment variables.

SET [variable=[string]]

  variable  Specifies the environment-variable name.
  string    Specifies a series of characters to assign to the variable.

Type SET without parameters to display the current environment variables.

SETX: स्थायी के लिए वर्तमान उपयोगकर्ता वातावरण चर बनाएं या अपडेट करें।

C:\Users\977246>setx /?

SetX has three ways of working:

Syntax 1:
    SETX [/S system [/U [domain\]user [/P [password]]]] var value [/M]

Syntax 2:
    SETX [/S system [/U [domain\]user [/P [password]]]] var /K regpath [/M]

Syntax 3:
    SETX [/S system [/U [domain\]user [/P [password]]]]
         /F file {var {/A x,y | /R x,y string}[/M] | /X} [/D delimiters]

Description:
    Creates or modifies environment variables in the user or system
    environment. Can set variables based on arguments, regkeys or
    file input.

To remove the variable set value to empty string as follows

Example: setx path ""

GUI उपयोगकर्ता और सिस्टम वातावरण चर में।

यहाँ छवि विवरण दर्ज करें


3

एक बिंदु जोड़ना जो अन्य उत्तरदाताओं द्वारा चूक गया था।

उपयोगकर्ता पर्यावरण चर के बजाय एक सिस्टम पर्यावरण चर सेट करने के लिए, हमें बस सेट कमांड में / m विकल्प का उपयोग करना होगा और इसे एक उन्नत (प्रशासक) कमांड प्रॉम्प्ट से चलाना होगा।

setx variable value /m

उदाहरण: व्यवस्थापक के रूप में कमांड प्रॉम्प्ट खोलें और चलाएँ

setx Path "%Path%;C:\Users\User\Libs" /m

स्पष्टीकरण: उपरोक्त आदेश पहले से मौजूद पथ परिवर्तनीय (सिस्टम पर्यावरण चर) के लिए "C: \ Users \ User \ Libs" को जोड़ देगा।

/ M तर्क के बिना , यह केवल उपयोगकर्ता-स्तर पथ चर में परिवर्तन करेगा या बनाएगा।

सेटक्स उपयोगकर्ता पुस्तिका से,

/ M निर्दिष्ट करता है कि चर को सिस्टम वाइड (HKEY_LOCAL_MACHINE) वातावरण में सेट किया जाना चाहिए। डिफ़ॉल्ट HKEY_CURRENT_USER वातावरण के तहत चर सेट करना है।

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