2009-07-21 11 views
8

के माध्यम से उपयोगकर्ता के% PATH% पर्यावरण परिवर्तक को स्थायी रूप से बदलना मुझे अपने उपयोगकर्ताओं को मैन्युअल रूप से पाथ पर्यावरण चर सेट करने में कठिनाई हो रही है, मैं इसे स्वचालित रूप से करने का एक तरीका ढूंढ रहा हूं। एक बैच फ़ाइल बेहतर होगी, क्योंकि इसके लिए उन्हें खुद को चलाने की आवश्यकता होगी (चेतावनी के साथ कि वे क्या कर रहे हैं), लेकिन setup.py के अतिरिक्त भी स्वीकार्य है।बैच या पायथन

अन्य जानकारी: SET केवल वर्तमान और व्युत्पन्न गोले को प्रभावित करता है; स्थायी मान कहीं रजिस्ट्री में संग्रहीत किए जाते हैं (एक जगह जहां मैं चलने की हिम्मत नहीं करता)।

उत्तर

5

जैसा कि डेविड ने कहा था, एसईटीएक्स उपकरण है जिसे आप विंडोज संसाधन किट से प्राप्त कर सकते हैं।

हालांकि, मुझे पता चला है कि एसईटीएक्स को कभी-कभी परेशानी होती है (जैसे दुर्घटनाग्रस्त)। मुझे यह पता नहीं लगा है कि समस्या क्या है, लेकिन मुझे संदेह है कि यह एक आकार मुद्दा है (उदाहरण के लिए यदि आप एक चर सेट करने का प्रयास करते हैं- मेरे मामले में यह पैथ था-एक मूल्य जो बहुत बड़ा है, उदाहरण के लिए> 1024 कुछ विषम वर्ण)।

मुझे दो अन्य निष्पादन योग्य मिल गए हैं जो एक ही काम कर सकते हैं। विशेष रूप से मेरा पसंदीदा SetEnv जोनाथन "डार्क" विल्स द्वारा कोडप्रोजेक्ट पर खत्म हो गया है। उन्होंने इसे अच्छी कार्यक्षमता के साथ काफी उपयोगी बना दिया है, और यह सभी विंडोज सिस्टम के साथ संगत है-मैंने कुछ विशेषताओं का भी सुझाव दिया है। :)

एक अन्य विकल्प, यदि आप इसे करने के लिए कर रहे हैं, मैन्युअल रूप से ऐसा करने के लिए (वास्तव में रजिस्ट्री में आइटम जोड़ने में और फिर या तो उच्च-स्तरीय खिड़कियों के लिए एक WM_SETTINGCHANGE प्रसारण, या शेल को पुन: प्रारंभ/रिबूट) है । हालांकि मुझे लगता है कि एक बैच फ़ाइल में SetEnv आपकी सबसे अच्छी शर्त है। ;)

+0

आपको अभी भी उन्हें SetEnv इंस्टॉल करना होगा, लेकिन यह अपेक्षाकृत दर्द रहित प्रक्रिया है। यह वही तरीका है जो मैं करता हूं। –

+0

वैसे आपको वास्तव में * इंस्टॉल * इंस्टॉल नहीं करना है, आप बस उसी निर्देशिका में निष्पादन योग्य हो सकते हैं जैसे बैच फ़ाइल जो सेटिंग करता है। – Synetech

+0

मैं अंत में इस पर काम करने के लिए चारों ओर मिल गया। शराब में स्थापित SetEnv स्थापित, निष्पादन योग्य खींच लिया और इसे मेरे कार्यक्रम डीआईआर में फेंक दिया, इसका उपयोग करने के लिए एक बैच फ़ाइल लिखी, और सब कुछ ग्रेवी। –

2
इस website से

:

ऐड-ऑन उपकरण Setx.exe

यह मानक Windows XP सेटअप का एक भाग है, लेकिन एक कमांड लाइन उपकरण बुलाया setx.exe है नहीं है का उपयोग करना विंडोज XP सर्विस पैक 2 समर्थन उपकरण में शामिल है। यह टूल सेट कमांड को बढ़ाता है ताकि में स्थायी परिवर्तन किए जा सकें। उदाहरण के लिए, एक फ़ोल्डर सी जोड़ने के लिए: \ पथ पर नए फ़ोल्डर, आदेश

setx path "%PATH%;C:\New Folder" 

होगा यह लग रहा है जैसे कि यह आप करना चाहते रहे हैं के लिए काम करेंगे।

5

इसलिए, चूंकि मुझे अपने उपयोगकर्ताओं को मैन्युअल रूप से पैथ सेट करने में कठिनाई हो रही है, इसलिए मैं इसे स्वचालित रूप से करने का एक तरीका ढूंढ रहा हूं।

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths (और साथ ही HKEY_CURRENT_USER\...) रजिस्ट्री कुंजी है कि आप अपने निष्पादन योग्य नाम के लिए एक आवेदन विशिष्ट पथ संलग्न करने के लिए अनुमति देता है।

जब भी नाम का एक निष्पादन शुरू कर दिया है, आवेदन विशिष्ट पथ कि निष्पादन के पथ वातावरण चर में जोड़ा जाता है।

2

मैं अभी इस प्रश्न में भाग गया और मुझे उपलब्ध विकल्पों में से कोई भी पसंद नहीं आया, इसलिए मैंने अपना स्वयं का समाधान लिखने का फैसला किया।

(SetEnv अच्छा रहा होगा, लेकिन मुझे गैर-लिबर लाइसेंस पसंद नहीं आया और मैं हमेशा एक उपप्रोसेसर को कॉल नहीं करना पसंद करता हूं ... मुझे SetEnv को उपप्रोसेस के रूप में कॉल करना बुरा नहीं होगा लेकिन, के अनुसार विकिपीडिया, इसका उपयोग लाइसेंस जो गैर-लिबर है क्योंकि इसमें किसी प्रकार का "बुराई नहीं है" खंड है और इस तरह की कानूनी रूप से अस्पष्ट प्रतिबंध हमेशा मेरी राय में एक समय-समय पर बम है।)

यहां थोड़ा MIT-licensed Python class है सीधे रजिस्ट्री को संशोधित करने और WM_SETTINGCHANGE भेजने के काम को छिपाने के लिए। (setup.py में उपयोग के लिए अच्छा)

संबंधित मुद्दे