मेरा PATH पर्यावरण चर कमांड प्रॉम्प्ट से अलग क्यों है?


11

थोड़ी महत्वपूर्ण पृष्ठभूमि: मेरी कंपनी के पास एक सामान्य लॉगिन वीबीएस स्क्रिप्ट है जो लॉगिन पर उपयोगकर्ता पेटीएच पर्यावरण चर में संशोधन करती है और मुझे सॉफ्टवेयर चलाने की अनुमति देती है जिसमें मैप किए गए डीएफएस फाइलशेयर पर निर्भरता है। मैंने हाल ही में अपने विंडोज 7 एंटरप्राइज मशीन में विंडोज पॉवर्सशेल एसडीके भी इंस्टॉल किया है और पॉवर्सशेल कमांड लाइन से अपने पैथ वातावरण चर को संशोधित करने का प्रयास करने का प्रयास किया है।

इसके बाद, मैंने देखा कि मैं अब उन अनुप्रयोगों को नहीं चला सकता हूँ जो इन लॉगिन पथ संशोधनों के अनुरूप हैं और जब मैं 'echo %PATH%'कमांड प्रॉम्प्ट से जारी किया गया था, तो पर्यावरण चर संपादक PATH कुछ अलग दिखा रहा था ।

तो उदाहरण के लिए (सरलीकरण), पर्यावरण चर संपादक से ( My Computer properties -> Advanced System Settings -> Environment Variables) मेरे पास था

 C:\MyDir\; C:\MyOtherDir

जब मैं 'echo %PATH%'एक कमांड प्रॉम्प्ट से किया था, जब मैं :

 C:\MyDir\

क्या किसी और के पास एक समान मुद्दा था और क्या किसी तरह का संकल्प था? जब मैंने मदद के लिए गुहार लगाई तो मैं इस पर आया:

(संबंधित?) StackOverflow थ्रेड

मेरे साथ यह हुआ कि यदि लॉगिन स्क्रिप्ट मेरे Explorer.exe वातावरण के अलावा किसी और चीज़ द्वारा शुरू की गई थी, तो वह समस्या थी। हालाँकि, जब मैंने स्वयं लॉगिन स्क्रिप्ट चलाई, कमांड प्रॉम्प्ट से मेरा PATH अपरिवर्तित था। PowerShell के साथ इसका क्या करना होगा? मुझे याद आ रहा है कि यह कैसे उस पूरी तरह से स्थापित से जुड़ा है।


आपने पॉवरशेल में पथ को कैसे संशोधित किया? आपने PATH% कहां से प्रतिध्वनित किया? Cmd.exe में?
वर्नर हेनज़े

ANSWER नीचे सामान्य है।
एसडीसोलर

जवाबों:


11

विंडोज में पर्यावरण चर प्रणाली पर्यावरण चर और उपयोगकर्ता पर्यावरण चर के दो वर्ग हैं । यदि आप उपयोग कर रहे हैं तो आप echo %PATH%अपने उपयोगकर्ता पर्यावरण चर को देखेंगे PATH। केवल अगर कोई उपयोगकर्ता चर परिभाषित नहीं है, तो सिस्टम चर उपयोगकर्ता प्रक्रियाओं के लिए प्रभावी होगा।

PATHविभाजक ;एक खाली द्वारा पीछा नहीं किया जाना चाहिए।

निम्नलिखित Microsoft नोट मददगार हो सकता है:

आप निम्न रजिस्ट्री कुंजी को संपादित करके उपयोगकर्ता पर्यावरण चर को संशोधित कर सकते हैं:

   HKEY_CURRENT_USER \ 
         Environment

आप निम्न रजिस्ट्री कुंजी को संपादित करके सिस्टम वातावरण चर को संशोधित कर सकते हैं:

   HKEY_LOCAL_MACHINE \ 
               SYSTEM \ 
    CurrentControlSet \ 
              Control \ 
      Session Manager \ 
          Environment

ध्यान दें कि किसी भी पर्यावरण चर को विस्तारित करने की आवश्यकता है (उदाहरण के लिए, जब आप उपयोग करते हैं %SYSTEM%) रजिस्ट्री में REG_EXPAND_SZरजिस्ट्री मान के रूप में संग्रहीत किया जाना चाहिए । REG_SZरजिस्ट्री से पढ़ते समय किसी भी प्रकार के मूल्यों का विस्तार नहीं किया जाएगा।

अतिरिक्त टिप्पणी: जब भी कोई प्रक्रिया अपना वातावरण बदलती है (रजिस्ट्री प्रक्रियाओं के बजाय जो नई प्रक्रियाओं के लिए पर्यावरण को परिभाषित करती है), तो परिवर्तन केवल बाल प्रक्रियाओं के लिए दिखाई देते हैं।


1
मैं एक्सल की बात पर जोर देना चाहूंगा यदि आपको पर्यावरण चर को संशोधित करने की आवश्यकता है, तो आपको रजिस्ट्री में बदलाव करने की आवश्यकता है। वास्तव में मैंने इसके साथ मदद करने के लिए एक PowerShell फ़ंक्शन बनाया: computerperformance.co.uk/powershell/powershell_env_path.htm
लड़के थॉमस

1
संशोधित करने के लिए कोई मूल्य नहीं हैं, केवल दो चर tmpऔर temp। क्या आप सुनिश्चित हैं कि यह उपयोगकर्ता के लिए पथ है, जिसे संशोधित किया जाना चाहिए?
जॉनी_डी।

यह काम नहीं करता है (रिबूट से पहले, कम से कम)। पथ चर HKCU \ Environment में नहीं है, cmd.exe में पथ चर सही ढंग से दिखाता है, लेकिन लॉन्च किए गए एप्लिकेशन अभी भी पुराने पथ चर को देख रहे हैं।
मार्टिन एगरामी

@Martin: हाँ, लॉन्च किया गया एप्लिकेशन रजिस्ट्री परिवर्तनों को नहीं पहचानता है, क्योंकि वे एप्लिकेशन स्टार्टअप के दौरान पर्यावरण की अपनी मेमोरी कॉपी प्राप्त करते हैं। यह प्रतिलिपि मूल प्रक्रिया पर निर्भर करती है जो उप-प्रक्रिया शुरू करती है। अगर वे विंडोज एक्सप्लोरर से शुरू किए गए उदाहरण के लिए हैं, तो आपको नए पैट को प्राप्त करने के लिए एक्सप्लोरर को पुनरारंभ करना होगा।
एक्सल केम्पर

आपने इसे सिर पर रख लिया! वहां का पथ कुछ प्रोग्राम जोड़ रहा था जो मुझे पता था कि हटा दिया गया था, जैसे कि Microsoft SQL। मुझे पता था कि यह सिस्टम गुण पथ से नहीं आया था जिसे मैंने सेट किया था। बहुत बहुत धन्यवाद - भविष्य से - आपने 3 साल से अधिक समय पहले यह उत्तर पोस्ट किया था।
एसडीसोलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.