पर्यावरण चर को ताज़ा करें


12

अपने पर्यावरण चर को संशोधित करने के बाद मैं विंडोज cmd शेल को कैसे रिफ्रेश कर सकता हूं?

यानी बाश में मैं सिर्फ "स्रोत ~ / .bashrc" कर सकता हूं


Stackoverflow पर एक ही सवाल का एक अच्छा जवाब है ।
ह्यूग एलन

कंसोल को बंद करें और एक नया खोलें।
सिंथेटिक्स

जवाबों:


4

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

यदि पर्यावरण चर को किसी अन्य अनुप्रयोग द्वारा सेट किया गया है और अद्यतन नहीं किया जा रहा है, तो अक्सर "explorer.exe" प्रक्रिया को पुनरारंभ करना आसान है , लॉग आउट करें और वापस, या रिबूट करें। अनिवार्य रूप से, आपको बस पर्यावरण चर को फिर से लोड करने के लिए एक्सप्लोरर को बताना होगा। यदि यह एक एप्लिकेशन है जिसे आपने विकसित किया है, जैसे कि इंस्टॉलर, यह सुनिश्चित करें कि यह कॉल कर रहा है SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");। यह एक्सप्लोरर को पर्यावरण चर के अपने कैश को ताज़ा करने के लिए कहता है।

यह महत्वपूर्ण है क्योंकि किसी अन्य प्रक्रिया द्वारा लॉन्च किए गए एप्लिकेशन अपने माता-पिता से अपने पर्यावरण चर प्राप्त करते हैं। जैसे, यदि आप एक्सप्लोरर से cmd लॉन्च करते हैं, तो आपको वैरिएबल मिलते हैं क्योंकि एक्सप्लोरर उन्हें देखता है।


1

विंडोज में मास्टर वातावरण को सेट करना और फिर से तैयार करना कुछ ऐसा है जिस पर बारपेट के लोगों ने अच्छा समय बिताया।

मुख्य वातावरण को रजिस्ट्री में संग्रहीत किया जाता है, लेकिन एक्सप्लोरर शेल इसे इसके पते पर पढ़ता है। यहां से इसे प्रत्येक cmd.exe सत्र में भेजा जाता है।

SET केवल cmd वातावरण को प्रभावित करता है। SETX आपको मास्टर वातावरण को बदलने की अनुमति देता है, लेकिन स्थानीय वातावरण में सेटिंग परिलक्षित नहीं होती है।

फ्रैंक वेस्टलेक के CONSET और 4NT रजिस्ट्री से प्रविष्टियां प्राप्त कर सकते हैं, लेकिन विशेष रूप से मास्टर वातावरण के लिए कोई स्विच नहीं।

आम तौर पर भरी हुई खिड़कियां रजिस्ट्री के लिए सेटिंग्स का ट्रैक रखती हैं, जबकि एक मिनिट (WinPE) के माध्यम से लोड नहीं करता है। इसलिए रजिस्ट्री सेट करना और रजिस्ट्री पढ़ना दोनों में काम करता है, लेकिन केवल सामान्य रूप से बूट की गई विंडो ही सेटिंग्स को देखेंगी और उन्हें एक नए cmd, exe प्रोग्राम में पास करेंगी।


0

यह निर्भर करता है कि आप अपने पर्यावरण चर को "सेट" कहां करते हैं। आपके बैश उदाहरण के समान होगा:

फ़ाइल: env.bat

set FOO=bar

और अब आप इसे ताज़ा करें

% call env.bat

लेकिन मुझे लगता है कि आपने इसे विंडोज़-सिस्टम-सेटिंग्स-डायलॉग (या जो भी इसका नाम है) के माध्यम से किया है। इसका परिणाम यह है कि आपने वास्तव में रजिस्ट्री को बदल दिया है। जब आप एक नई प्रक्रिया शुरू करते हैं तो इन रजिस्ट्री सेटिंग्स को प्रक्रिया में मैप किया जाता है।

इसलिए, आप या तो एक नई प्रक्रिया शुरू कर सकते हैं (cmd.exe आपके मामले में) या आप रजिस्ट्री कुंजियों को पढ़ सकते हैं जो आपके इच्छित परिवर्तनों को दर्शाती हैं। आप थोड़ी .bat / .cmd स्क्रिप्ट भी लिख सकते हैं, जो रजिस्ट्री से पर्यावरण प्राप्त करती है और वर्तमान एनवायरमेंट को बदलती है (यदि मूड मुझे हड़ताल करता है तो मैं दोपहर के भोजन के बाद ऐसा करता हूं)।


0

यह अब काफी आसान है, शेल को पुनः आरंभ करने की आवश्यकता नहीं है:

  1. प्रारंभ मेनू खोलें और खोजें RefreshEnv.bat
  2. Daud RefreshEnv.bat

निरीक्षण करें कि आपके नए जोड़े गए पर्यावरण चर किसी भी नए कमांड / पॉवर्सशेल उदाहरण में उपलब्ध हैं, जो ताज़ा की पुष्टि करते हैं।


अब आप क्या मतलब है? किस संस्करण से? क्या वह बैट फाइल विंडोज़ के साथ उपलब्ध है?
Máté Juhász
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.