windows - विंडोज़ में पाथ पर्यावरण वैरिएबल में निर्देशिका जोड़ना




command-line environment-variables (10)

विंडोज एनटी ऑपरेटिंग सिस्टम में, मैंने इस निर्देशिका को अपने सिस्टम PATH पर्यावरण चर में जोड़ने की कोशिश की:

C:\xampp\php

इसलिए मैंने "मेरा कंप्यूटर"> "गुण"> "उन्नत"> "पर्यावरण चर"> "पथ" द्वारा निर्देशिका को जोड़ा। मैंने इसे बचाया, लेकिन जब मैंने टाइप किया:

पथ

मेरे कंसोल पर, यह कोई भी जोड़ा गया "सी: \ xampp \ php" निर्देशिका नहीं दिखाता है

पाथ = डी: \ प्रोग्राम फ़ाइलें \ Autodesk \ Maya2008 \ bin; सी: \ रूबी 1 9 2 \ bin; सी: \ विन्डोज़ \ system32; सी: \ विन्डोज़; सी: \ विन्डोज़ \ System32 \ Wbem; सी: \ PROGRA ~ 1 \ DISKEE ~ 2 \ डिस्ककी ~ 1 \; सी: \ प्रोग्राम फ़ाइल es \ Microsoft SQL सर्वर \ 90 \ उपकरण \ binn \; सी: \ प्रोग्राम फ़ाइलें \ क्विकटाइम \ QTSystem \; डी: \ पी प्रोग्राम फ़ाइलें \ TortoiseSVN \ bin; डी: \ प्रोग्राम फ़ाइलें \ बाज़ार; सी: \ प्रोग्राम फ़ाइलें \ एंड्रॉइड \ एक droid-sdk \ tools; डी: \ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट विजुअल स्टूडियो \ सामान्य \ उपकरण \ WinNT; डी: \ पी प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट विजुअल स्टूडियो \ आम \ MSDev98 \ Bin; डी: \ प्रोग्राम फ़ाइलें \ Microso फीट विजुअल स्टूडियो \ सामान्य \ उपकरण; डी: \ प्रोग्राम फ़ाइलें \ माइक्रोसॉफ्ट विजुअल स्टूडियो \ VC98 \ bin

मेरे पास दो प्रश्न हैं:

  1. ऐसा क्यों हुआ? क्या मैंने कुछ गलत किया है?

  2. मैं कंसोल या प्रोग्रामेटिक रूप से (बैच फ़ाइल के माध्यम से) का उपयोग करके अपने PATH चर में निर्देशिका कैसे जोड़ सकता हूं?


सुरक्षित सेटक्स

@ नाफस्क्रिप्ट के प्रारंभिक एसईटीएक्स उत्तर पर सभी टिप्पणियों के बारे में जानकारी दें।

  • डिफ़ॉल्ट रूप से SETX आपके उपयोगकर्ता पथ को अपडेट करेगा।
  • SETX ... /M आपके सिस्टम पथ को अपडेट करेगा।
  • %PATH% में उपयोगकर्ता पथ के साथ सिस्टम पथ शामिल है

चेतावनी

  1. अपने PATH बैकअप - SETX 1024 SETX से अधिक लंबे समय तक आपके जंक को छोटा कर देगा
  2. SETX %PATH%;xxx कॉल न करें SETX %PATH%;xxx - उपयोगकर्ता पथ में सिस्टम पथ जोड़ता है
  3. SETX %PATH%;xxx /M कॉल न करें SETX %PATH%;xxx /M - सिस्टम पथ में उपयोगकर्ता पथ जोड़ता है
  4. अत्यधिक बैच फ़ाइल उपयोग अंधापन का कारण बन सकता है 1

एसएस 64 एसईटीएक्स पेज में कुछ बहुत अच्छे उदाहरण हैं। महत्वपूर्ण रूप से यह इंगित करता है कि रजिस्ट्री कुंजी SETX बनाम SETX /M लिए कहां हैं

उपयोगकर्ता चर:

HKCU\Environment

सिस्टम वैरिएबल:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

उपयोग निर्देश

उपयोगकर्ता PATH संलग्न करें

append_user_path.cmd

@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1

सिस्टम PATH संलग्न करें

append_system_path.cmdव्यवस्थापक के रूप में चलाया जाना चाहिए।

(यह मूल रूप से एक अलग Key और SETX /M संशोधक को छोड़कर समान है)

@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M

वैकल्पिक

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

1. कड़ाई से सच नहीं है


आपको किसी भी set या setx कमांड की आवश्यकता नहीं है, बस टर्मिनल खोलें और टाइप करें:

PATH

यह पाथ चर के वर्तमान मूल्य को दिखाता है। अब आप इसमें निर्देशिका जोड़ना चाहते हैं? बस टाइप करें:

PATH %PATH%;C:\xampp\php

यदि किसी भी कारण से आप पैथ चर को साफ़ करना चाहते हैं (बिल्कुल कोई पथ नहीं है या इसमें सभी पथ हटाएं), टाइप करें:

PATH ;

अद्यतन करें

डेनियल विल्सन की तरह नीचे टिप्पणी में उल्लेख किया गया है, यह केवल वर्तमान सत्र में पथ सेट करता है। पथ को स्थायी रूप से setx उपयोग करने के लिए, लेकिन जागरूक setx , हालांकि यह पथ को स्थायी रूप से सेट करता है लेकिन वर्तमान सत्र में नहीं, इसलिए आपको परिवर्तन देखने के लिए एक नई कमांड लाइन शुरू करनी होगी, here अधिक जानकारी।

यह जांचने के लिए कि क्या एक पर्यावरण चर मौजूद है या इसके मूल्य का उपयोग ECHO commnad:

echo %YOUR_ENV_VARIABLE%

कमांड प्रॉम्प्ट में आप सीएमडी को एक्सप्लोरर की कमांड लाइन का उपयोग start साथ प्रीफैसिंग करके बताते हैं।

तो start Yourbatchname

ध्यान दें कि आपको पंजीकरण करना होगा जैसे उसका नाम batchfile.exe

प्रोग्राम और दस्तावेज़ रजिस्ट्री में जोड़े जा सकते हैं ताकि स्टार्ट-रन डायलॉग बॉक्स या शॉर्टकट में उनके पथ के बिना अपना नाम टाइप करना विंडोज को ढूंढने में सक्षम बनाता है।

यह एक सामान्य reg फ़ाइल है। नीचे दी गई रेखाओं को एक नए टेक्स्ट दस्तावेज़ में कॉपी करें और इसे anyname.reg के रूप में सहेजें। इसे अपने कार्यक्रमों या दस्तावेजों के साथ संपादित करें।

मार्गों में \ n प्रमुख पथों में फ़ोल्डर नामों को अलग करने के लिए उपयोग करें क्योंकि regedit अपने कुंजी नामों को अलग करने के लिए एकल \ का उपयोग करता है। सभी reg फ़ाइलें REGEDIT4 के साथ शुरू होती हैं। एक अर्धविराम एक टिप्पणी में एक पंक्ति बदल जाता है। @ प्रतीक का मतलब नामित मान के बजाय कुंजी को मान असाइन करना है।

फ़ाइल मौजूद नहीं है। इसका उपयोग Winword.exe को खोलने के लिए Word.exe को सेट करने के लिए किया जा सकता है।

टाइपिंग start batchfile iexplore.exe शुरू होगा।

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension> 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

आपको पहले से ही किसी अन्य उत्तर में पथ के बारे में बताया गया है। doskey /? भी देखें doskey /? cmd मैक्रोज़ के लिए (वे केवल टाइप करते समय काम करते हैं)।

आप सीएमडी के लिए स्टार्टअप कमांड चला सकते हैं। विंडोज़ रिकॉर्ड किट तकनीकी संदर्भ से

ऑटोरन

HKCU\Software\Microsoft\Command Processor 

Data type Range Default value 
REG_SZ  list of commands  There is no default value for this entry.  

विवरण

प्रत्येक बार जब आप Cmd.exe प्रारंभ करते हैं तो निष्पादित आदेश होते हैं।


पार्टी के लिए देर हो चुकी है - लेकिन अगर आप पहले से ही निर्देशिका में हैं तो आप आसान पाथ में जोड़ना चाहते हैं।

set PATH=%PATH%;%CD%

संपादित करें: टिप्पणी के अनुसार - मानक विंडोज सेमीड के साथ काम करता है लेकिन पावरहेल में नहीं।

[System.Environment]::CurrentDirectory लिए %CD% बराबर है [System.Environment]::CurrentDirectory


बिंदु 2 के बारे में मैं एक साधारण बैच फ़ाइल का उपयोग कर रहा हूं जो मेरे लिए PATH या अन्य पर्यावरण चर को पॉप्युलेट कर रहा है। इसलिए, डिफ़ॉल्ट रूप से पर्यावरण चर का कोई प्रदूषण नहीं है। यह बैच फ़ाइल हर जगह से सुलभ है इसलिए मैं टाइप कर सकता हूं:

c:\>mybatchfile
-- here all env. are available
c:\>php file.php

आप here इस सरल दृष्टिकोण के बारे में अधिक जानकारी देख सकते here


यदि आप सेटक्स का उपयोग कर पथ को गलत टाइप करते हैं तो क्या होगा? सबसे अच्छा तरीका विंडोज यूआई कंट्रोल पैनल-> ​​सभी कंट्रोल पैनल आइटम-> सिस्टम-> उन्नत सिस्टम सेटिंग-> पर्यावरण चर के माध्यम से सबसे अच्छा तरीका है

पथ पर नीचे स्क्रॉल करें और संपादित करें का चयन करें। आप इसे अपने पसंदीदा संपादक में कॉपी और पेस्ट भी कर सकते हैं ताकि आप संपूर्ण पथ देख सकें और इसे आसानी से संपादित कर सकें।


विंडोज 10 एलटीएसबी पर उपर्युक्त सुझावों की जांच करना, और "सहायता" रूपरेखा पर एक झलक के साथ (जिसे cmd पर 'कमांड /?' टाइप करते समय देखा जा सकता है), मुझे निष्कर्ष पर पहुंचाया कि पाथ कमांड सिस्टम पर्यावरण चर बदलता है केवल मौजूदा सत्र के लिए पथ मान, लेकिन रीबूट के बाद सभी मान अपने डिफ़ॉल्ट पर रीसेट करें- जैसे कि वे PATH कमांड का उपयोग करने से पहले थे।

दूसरी ओर प्रशासनिक विशेषाधिकारों के साथ SETX कमांड का उपयोग करना अधिक शक्तिशाली है, यह उन मानों को अच्छे के लिए बदलता है (या कम से कम अगली बार जब तक यह आदेश उपयोग नहीं किया जाता है या अगली बार जब तक वे मान मैन्युअल रूप से GUI का उपयोग नहीं किया जाता है ...)।

लेकिन स्पष्टता के लिए मैंने सोचा कि मेरे लिए काम करने वाले सबसे अच्छे एसईटीएक्स सिंटैक्स उपयोग को साझा करने से किसी एक दिन में मदद मिल सकती है:

SETX PATH "%PATH%;C:\path\to\where\the\command\resides"

जहां कोई बराबर चिह्न '=' से बचा जाना चाहिए, और आप रिक्त स्थान के बारे में चिंता नहीं करते हैं! किसी पथ के लिए कोई और उद्धरण चिह्न डालने की आवश्यकता नहीं है जिसमें इसके अंदर रिक्त स्थान हैं- विभाजन चिह्न ';' काम करें।

एसईटीएक्स का पालन करने वाला पथ कीवर्ड परिभाषित करता है कि उद्धरण चिह्नों के अंदर सिस्टम एनवायरनमेंट वैरिएबल संभावित मानों के बीच मूल्यों का कौन सा सेट बदला जाना चाहिए, और% PATH% (प्रतिशत चिह्न से घिरा शब्द पीएटीएच), ओएस को मौजूदा छोड़ने के लिए कहता है पाथ वैल्यू वे हैं और निम्न पथ जोड़ते हैं (वह जो स्प्लिट साइन ';' का पालन करता है) मौजूदा मानों में।

HTH


सभी उत्तरों के अलावा, यदि आप अपने विंडोज़ पर्यावरण चर को संपादित करने के लिए एक अच्छा जीयूआई उपकरण चाहते हैं तो आप रैपिड एनवायरनमेंट एडिटर का उपयोग कर सकते हैं

कोशिश करो! इसका उपयोग करने के लिए सुरक्षित और भयानक!

http://www.rapidee.com/en/


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

पहले से ही निष्पादन योग्य शामिल ओवरराइड करने के लिए;

पाथ = सी सेट करें: \ xampp \ php;% पाथ%;


  • नियंत्रण कक्ष या सिस्टम सेटिंग्स के माध्यम से सिस्टम पथ को बदलने के बाद कंसोल विंडो खोलें।

या

  • set PATH=%PATH%;C:\xampp\php

    कमांड विंडो में आप खुले हैं।

    इसे तोड़ना:

    set PATH=%PATH%;  -- takes the current path and sets PATH to it.
    C:\xampp\php      -- Adds this directory to the path, because of 'set PATH' this is added to the path
    




environment-variables