मैं विंडोज 7 में सिस्टम चर पथ के लिए उपयोगकर्ता-परिभाषित पर्यावरण चर कैसे जोड़ूं?


9

मेरे दो उपयोगकर्ता परिभाषित चर हैं:

ANT_HOME सेट करें USERPROFILE% \ Developer \ Tools \ Apache \ Apache Ant \ Apache-ant-1.8.2 JAVA_HOME C: \ Program Files \ Java \ jdk1.6.0_23 पर सेट करें

और मैं उन रास्तों को सिस्टम वैरिएबल में जोड़ना चाहता हूं ताकि मैं उनके बिन फ़ोल्डरों में एक्जीक्यूटिव तक पहुंच बना सकूं। मैंने कोशिश की

पथ [अन्य रास्तों] पर सेट;% ANT_HOME% \ बिन;% JAVA_HOME% \ बिन

हालाँकि, यह काम नहीं करता है। जब मैं एक कमांड-प्रॉम्प्ट खोलता हूं और% PATH% का उपयोग करता है, तो उपयोगकर्ता चर का विस्तार नहीं किया जाता है । तो पथ सिर्फ शाब्दिक दिखाता है;% ANT_HOME% \ बिन;% JAVA_HOME% \ बिन

मुझे अपने पुराने विंडोज एक्सपी सिस्टम पर यह ठीक काम याद है। मैं इसे विंडोज 7 पर कैसे सेट करूं?


मुझे अभी-अभी 2007 में शेल32.dll में बग का वर्णन करते हुए Microsoft समर्थन आलेख मिला। मैंने अपने यूजर वैरिएबल लिस्ट में एक PATH वैरिएबल को PATH के साथ% PATH%;% ANT_HOME% \ बिन;% JAVA_HOME% \ bin और काम-के आसपास समस्या के साथ जोड़ा। मैं इसे केवल अपने उपयोगकर्ता के लिए सेट करना पसंद नहीं करता, लेकिन किसी तरह मेरा सिस्टम इस पुराने बग के लक्षण को प्रस्तुत कर रहा है और मुझे अभी तक कोई अन्य बेहतर जवाब नहीं मिला। लेख यहां है: support.microsoft.com/kb/329308
माइकल प्रीस्कॉट

जवाबों:


5

अद्यतन नंबर 2 - अब वास्तविक प्रश्न पर: क्यों नेस्टेड, उपयोगकर्ता-निर्मित चर विस्तार करने में विफल होते हैं?

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

केवल व्यवहार्य वर्कअराउंड मैंने पाया कि रिकर्सन लेवल द्वारा वेरिएबल रिकर्सन लेवल को जोड़ा जा रहा है। इसका मतलब है: उन सभी चरों को हटाने की कोशिश करें, जिन्हें आप एक-दूसरे में घोंसला बनाना चाहते हैं (पाथ से अपने उपयोगकर्ता-निर्धारित चर सहित कॉल), और फिर खरोंच से शुरू करें। अपने मूल चर (आदि ANT-HOME) को परिभाषित करें, प्रतिबद्ध करें, जांचें कि क्या यह विस्तारित है, यदि यह है, तो अगले स्तर की प्रतिबद्धताओं के साथ आगे बढ़ें, जांच करें ... आपको विचार मिलता है।

अद्यतन उत्तर - सीएलआई और जीयूआई का उपयोग करके स्थायी पर्यावरण चर को परिभाषित करना - मूल उत्तर के लिए नीचे स्क्रॉल करें

GUI विधि:

विंडोज 7 पर, मेटा-प्रॉम्प्ट में बस "सिस्टम" टाइप करें और आपको एक प्रविष्टि दिखाई देगी "सिस्टम पर्यावरण चर को संपादित करें"। वहां से, "पर्यावरण चर" पर क्लिक करें। वहां, आप या तो सिस्टम चर पथ (नीचे सूची) को संपादित कर सकते हैं या उपयोगकर्ता पर्यावरण चर में एक नया पथ चर जोड़ / संपादित कर सकते हैं।

कमांड लाइन विधि:

पर्यावरण चर को स्थायी रूप से बदलने के लिए, आपको Windows कमांड लाइन में SETX कमांड का उपयोग करना होगा। विंडोज के अन्य संस्करणों के विपरीत, यह विंडोज 7 के साथ बिल्ट-इन आता है। इसका सिंटैक्स एसईटी से बहुत भिन्न होता है, लेकिन यह शक्तिशाली भी है। आपको थोड़ा सावधान रहना होगा, हालांकि, SETX के साथ अपने चरों की गड़बड़ी करना आसान है।

  • डिफ़ॉल्ट रूप से, आप उपयोगकर्ता चर बदलते हैं । आपके पास एक PATH उपयोगकर्ता वातावरण चर हो सकता है जो सिस्टम PATH चर के साथ सह-अस्तित्व में है। यदि आपने इसे अभी तक परिभाषित नहीं किया है, तो टाइप करके देखें:SETX PATH yourpath

  • आप सिस्टम चर पथ के लिए एक मान भी जोड़ सकते हैं। ऐसा करने के लिए, आपको पहले व्यवस्थापक विशेषाधिकारों के साथ एक कमांड लाइन लाने की आवश्यकता है। ऐसा करने के लिए, मेटा (विंडोज़) कुंजी, प्रकार मारा cmdऔर हिट CTRL+ SHIFT+ ENTERऔर यूएसी संवाद की पुष्टि करें।

पथ में नए मान जोड़ने के लिए, अब आप प्रवेश कर सकते हैं

setx path "%path%;yournewpath" /m

उस सिंटैक्स का पालन करना महत्वपूर्ण है! यदि आप पहले%% शामिल नहीं करते हैं, तो पथ के सभी मौजूदा मान खो जाएंगे और केवल आपके नए पथ को बदल दिया जाएगा। अंत में / m स्विच सिस्टम वातावरण में चर सेट करता है।

कृपया ध्यान दें कि आपको अपने नए चर का उपयोग करने के लिए एक नई कमांड लाइन लानी होगी।

TechNet पर SETX के लिए एक पूर्ण संदर्भ भी है ।

OLD ANSWER कमांड सेट केवल वर्तमान कमांड लाइन सत्र की अवधि के लिए चर अद्यतन करता है।

किसी वैरिएबल में मान जोड़ने का सही सिंटैक्स है 'सेट [वैरिएबल] =% [वैरिएबल]%; [नया मूल्य] `

ध्यान दें कि समान चिह्न के बाईं ओर, आपको प्रतिशत संकेतों को छोड़ना होगा!

स्रोत: विंडोज सर्वर के लिए टेकनेट कमांड-लाइन संदर्भ


1
बहुत विस्तृत प्रतिक्रिया के लिए धन्यवाद। मैंने व्यक्तिगत रूप से हमेशा GUI विधि को प्राथमिकता दी है क्योंकि मुझे लगता है कि मेरी टीम के लिए संवाद करना आसान है। मैंने स्पष्टता के लिए अपनी मूल पोस्ट में होने वाली समस्या पर प्रकाश डाला है। उपयोगकर्ता चर विंडोज 7 में विस्तार नहीं कर रहे हैं जैसा कि उन्होंने विंडोज एक्सपी में किया था। क्या यह अब काम नहीं करता है या मुझे सुरक्षा या अन्य सिस्टम व्यवस्थापक सेटिंग्स की जांच करनी चाहिए जो सामान्य व्यवहार को अवरुद्ध कर सकती हैं?
माइकल प्रीस्कॉट

यह कहने का एक बहुत अच्छा तरीका है "आप बिंदु के पास पूरी तरह से हैं";)
तोबियस प्लूटैट

... और अब वास्तविक प्रश्न पर मेरे 2 सेंट। नवीनतम उत्तर संपादित करें देखें।
टोबियास प्लूटैट

1

2007 में वापस से एक Microsoft समर्थन आलेख - संख्या 329308 - Shell32.dll में एक बग का वर्णन करता है, जो इस समस्या का कारण है। समाधान के लिए PATHसेट करने के लिए उपयोगकर्ता चर सूची में एक चर जोड़ने के लिए है

%ANT_HOME%\bin;%JAVA_HOME%\bin

इस मुद्दे पर काम किया। मैं इसे केवल अपने उपयोगकर्ता के लिए सेट करना पसंद नहीं करता, लेकिन किसी तरह मेरा सिस्टम इस पुराने बग के लक्षण पेश कर रहा है और मुझे अभी तक कोई और बेहतर जवाब नहीं मिला।

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