विंडोज पेट / पर्यावरण चर के लिए सबसे अच्छा अभ्यास प्रबंधन?


22

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

मैं उन्हें कॉपी करने और चिपकाने के लिए एक होम फोल्डर के लिए सतर्क हूं और उस पर पथ सेट कर रहा हूं; यह सिर्फ गलत लगता है। क्या कोई स्थापित सर्वोत्तम अभ्यास है जो मुझे याद आ रहा है?


यह इतना बड़ा सवाल है - प्रोग्राम चलाना UNIX पर इतना आसान है लेकिन विंडोज पर ऐसा दर्द। इसकी शर्म की बात है कि एकमात्र समाधान अभी भी इस तरह की कड़ी मेहनत के समान लगता है ...
user10550

जवाबों:


13

कई छोटी-बड़ी स्व-निहित उपयोगिताओं में रहते हैं %UserProfile%\Apps फ़ोल्डर, जैसे अभिलेखागार और पसंद है। फिर मेरे द्वारा लिखी गई कई बैच फाइलें हैं और बार-बार उपयोग की जाती हैं जो अंदर रहती हैं %UserProfile%\Batches। बाकी के लिए, मैं बस उन्हें जोड़ता हूं PATH, जो या तो एक इंस्टॉलर द्वारा या उसके साथ किया जाता है

setx PATH "%PATH%;%CD%"

उपयुक्त निर्देशिका से। पथ की संख्या संभवतः केवल कभी एक मुद्दा बन जाना चाहिए अगर सामग्री बहुत लंबी हो जाए (पर्यावरण चर के लिए लंबाई सीमाएं हैं)।

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

@"%ProgramFiles%\Foosoft Foo\foo.exe" %*

और फिर आप उस फ़ोल्डर को जोड़ सकते हैं जहां आप उन बैच फ़ाइलों को अपने पास संग्रहीत करते हैं PATH


ये रैपर बैच फाइलें कैसे काम करती हैं? क्या वे वास्तविक पथ की आवश्यकता के अनुसार काम करते हैं? यदि हां, तो यह आश्चर्यजनक है।
Justin L.

@ जस्टिन: वे वास्तविक कार्यक्रम में बैच फ़ाइल को दिए गए सभी तर्कों को सौंपते हैं। जहाँ वह रहता है आपको खुद को जानना होगा।
Joey

हम्म; मुझे स्पष्ट करना चाहिए - क्या PATH में बाइनरी की डायरेक्टरी को जोड़ने और PATH पर एक कस्टम डायरेक्टरी में बाइनरी के एक वैपर बैच फ़ाइल बनाने के बीच कोई कार्यात्मक अंतर है?
Justin L.

@ जस्टिन: यदि आप बैच फ़ाइलों को बैच फ़ाइलों में फिर से उपयोग करते हैं, तो वहाँ है। इसके अलावा मुझे किसी की जानकारी नहीं है।
Joey

@ जॉय मुझे रैपर विचार पसंद है, जो कि cmd से प्रोग्राम लॉन्च करने के लिए अच्छा है, लेकिन जब शुरू से लॉन्च किया जाता है..तो क्या यह cmd विंडो के लिए प्रोग्राम लॉन्च होने से पहले कूदने के लिए व्याकुलता है, क्या आपके पास इसके बारे में कोई रास्ता है? ऐसा लगता है कि कोई भी मार्ग में सभी कार्यक्रमों के लिए निर्देशिका रख सकता है और इसे लंबा होने दे सकता है। इतनी दूर अभी तक!
barlop

10

मैं किसी भी विशिष्ट सर्वोत्तम प्रथाओं के बारे में निश्चित नहीं हूं। लेकिन मैं PATH चर का प्रबंधन करने के लिए GUI PATH संपादक टूल का उपयोग करना पसंद करता हूं। ताकि यह स्पष्ट रूप से बनाए रखा जा सके।

पथ संपादक की सूची -

रैपिड पर्यावरण संपादक

रेडमंड पाथ संपादक


चित्रमय संपादक चीजों को बहुत आसान बना सकते हैं
Justin L.

वह रेडमंड पाथ संपादक ठीक उसी तरह का है जिस तरह की चीज़ मैं खोज रहा था। +1
Nathan Ridley

सवाल केवल वस्तुओं को जोड़ने के लिए नहीं, बल्कि वैरिएबल को प्रबंधित करने के बारे में था। तो यह सबसे सही उत्तर है और IMO सबसे अच्छा अभ्यास है क्योंकि अन्य समाधान पैथ चर की अधिकांश सामग्री को छिपाते हैं।
taurelas

2

अब जब अधिकांश विंडोज मशीनें पॉवरशेल के साथ आती हैं, तो मैं अपने उपयोगकर्ता प्रोफ़ाइल में कई सैल / सेट-एलियास कमांड का उपयोग करता हूं, इसलिए यदि किसी ऐप में केवल एक या दो ऐप हैं, तो मैं उन सभी कमांडों को जोड़ने के बजाय केवल उन दो कमांडों के लिए उपनाम बनाऊंगा। पथ के लिए पूरे एप्लिकेशन फ़ोल्डर। उदाहरणों में SQL प्रबंधन स्टूडियो, नोटपैड ++, टीएफएस पावर टूल्स (कमांड-लाइन टूल, tfpt.exe) शामिल हैं। मैं अपने उपयोगकर्ता प्रोफ़ाइल को मशीनों में भी कॉपी करता हूं, इसलिए यह मुझे उपनाम बनाने से पहले वर्तमान मशीन पर उस एप्लिकेशन के अस्तित्व की जांच करने देता है (कभी-कभी चेतावनी अगर ऐप स्थापित नहीं है)।

filter ctQuoteString { "`"$_`"" }
filter ctResolvePath { Resolve-Path $_ | select -ExpandProperty Path | ctQuoteString } # used in Edit.ps1

$nppExe = "C:\Program Files (x86)\Notepad++\notepad++.exe"
if ((Test-Path variable:\nppExe) -and (Test-Path $nppExe)) {
    function EditNotepadPP { 
        param ([parameter(ValueFromPipelineByPropertyName=$true)][Alias("FullName","FileName")]$Path) 
        begin { if (! $nppExe) { throw 'variable $nppExe is not defined' } }
        process {
            $Path | ctResolvePath | % { # ctResolvePath will get full path and surround with quotes
                & $nppExe $_
            }
            #AddEditHistory $Path #if you need detailed time tracking, might help to create a log what files you're editting
       } 
    }
    Set-Alias npp EditNotepadPP
}

# I have similar functions for other apps.
Set-Alias vs EditVS
Set-Alias tfe EditTFCheckout
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.