2009-02-04 13 views
10

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

मैं इन चरों को कैसे प्राप्त और सेट करूं?

उत्तर

16

आप विश्व स्तर पर और स्थायी रूप से वातावरण चर बदलने के लिए, के रूप में यदि आप इसे नियंत्रण कक्ष में स्थापित है, तो आप muck with the registry (अद्यतन करने के लिए है की जरूरत है: और अब ऐसा करने के लिए मॉड्यूल हैं, Win32::Env और Win32::Env::Path)। ध्यान दें कि रजिस्ट्री में बदलते चर और "प्रसारण" परिवर्तन कुछ मौजूदा प्रक्रियाओं में पर्यावरण चर को बदल नहीं देगा, विशेष रूप से perl.exe और cmd.exe।

यदि आप वर्तमान प्रक्रिया (और बाद में बाल प्रक्रियाओं को जन्म देने) को बदलना चाहते हैं, तो वैश्विक% ENV हैश वैरिएबल वह है जो आप चाहते हैं (उदा। $ ENV {PATH})। perldoc perlvar देखें।

+0

देखें http://search.cpan.org/~adamk/Win32-Env-Path-0.01/lib/Win32/Env/Path.pm एक मॉड्यूल के लिए के लिए धन्यवाद उस perlmonks नोड में। – oeuftete

+0

धन्यवाद, मुझे उन मॉड्यूल के बारे में पता नहीं था ... और वे perlmonks नोड के समय मौजूद नहीं थे। – runrig

+0

वह व्यक्ति आपकी पोस्ट से बहुत अच्छी तरह से प्रेरित हो सकता है ... कौन जानता है। :) ऐसा लगता है कि इसमें पीएम नोड से अपडेट को प्रसारित करने के लिए आपका कदम शामिल नहीं है। – oeuftete

7

$ ENV {PATH}?

ध्यान रखें कि पर्यावरण चर केवल उपप्रोसेसेस को प्रभावित करते हैं। आप एक पर्ल प्रोग्राम नहीं चला सकते हैं,% ENV बदल सकते हैं, और फिर उस प्रक्रिया को मूल प्रक्रिया में बदल सकते हैं - पर्यावरण इस तरह से काम नहीं करता है।

+0

एलओएल, हम एक ही जवाब में एक ही जवाब जमा करने में कामयाब रहे! :-p –

+0

ग्रेट दिमाग एक जैसे सोचते हैं;) – jrockway

+0

एएक, यही वह था जो मैं करना चाहता था। कम या ज्यादा क्या वर्णित किया गया था करने के लिए प्रतीत होता है कि जबाब वैसे भी – Xetius

4

आप ऐसा कर सकते हैं %ENV हैश का उपयोग कर

$ENV{PATH} = 'C:\\Windows\;D:\\Programs'; 
संबंधित मुद्दे