विंडोज 10 पर पर्यावरण चर बहुत बड़ा है


147

मुझे पता है कि यह अजीब है और मैंने लगभग 3 दिन बिताए हैं एक उपयोगी समाधान के बिना ऑनलाइन समाधान खोजने के लिए। इसलिए मैंने यहां आने का फैसला किया है।

मैंने हाल ही में विंडोज 8.1 से विंडोज 10 में अपग्रेड किया है।

अब मैं अपाचे मावेन की अपनी नई स्थापना के लिए एक पर्यावरण चर सेट करना चाहता था।

हर बार जब मैंने उपयोगकर्ता चर बनाया, तो चीजें ठीक हैं। हालाँकि, मुझे उस सिस्टम वैरिएबल को बनाने की भी आवश्यकता है जहाँ मुझे उस डाइरेक्टरी में बिन डाइरेक्टरी को जोड़ने की आवश्यकता होगी जिसे मैं "वैरिएबल" बना रहा हूँ।

अब, हर बार जब मैं ऐसा करता हूं तो मुझे एक इरॉन मिलता है जो कहता है "यह पर्यावरण चर बहुत बड़ा है। इसके परिणामस्वरूप, मैं पथ बनाने में असमर्थ हूं।

मैंने इस त्रुटि की छवि संलग्न की है।

अगर कोई इस समस्या को हल करने में मेरी सहायता कर सकता है तो मैं इसकी सराहना करूंगा।

अग्रिम धन्यवाद आपकी सहायता के लिए।यहाँ छवि विवरण दर्ज करें


14
मुझे उम्मीद है कि वे किसी दिन इसे ठीक कर लेंगे। ऐसा कभी नहीं होना चाहिए। ^ ^
itmuckel

1
सही समाधान PATHपर्यावरण चर का दुरुपयोग रोकने के लिए अनुप्रयोगों के लिए है । लगभग 2 दशकों से उचित समाधान मौजूद है । लेकिन इसका उपयोग करने के लिए डेवलपर्स को प्राप्त करना दांतों को खींचने जैसा है।
इयान बॉयड

जवाबों:


148

जब PATH वैरिएबल बहुत अधिक मूल्यों के साथ ओवरलोड हो जाता है तो यह उस बिंदु पर पहुंच जाता है जहां आप अब और मान नहीं जोड़ सकते। निम्नलिखित को आजमाकर अपनी समस्या का समाधान करना चाहिए।

समाधान 1:

  1. एक नया सिस्टम वैरिएबल बनाएं 'NEWPATH'
  2. बिन निर्देशिका स्थान को 'NEWPATH' को सौंपें
  3. अब अपेंडेंट ' ; % NEWPATH% 'PATH चर में

यदि यह अभी भी काम नहीं करता है, तो PATH चर के कुछ हिस्से को पहले से मौजूद मानों को 'NEWPATH' में कॉपी करने की कोशिश करें और फिर 'NEWPATH' को जोड़ दें।

समाधान 2:

यदि आप पथों को समूह और छोटा कर सकते हैं, तो पथ चर का मान जांचें। उदाहरण के लिए,

C: \ Program Files \ Microsoft SQL Server \ 102 \ Tools \ Binn \; C: \ Program Files \ Microsoft SQL Server \ 102 \ DTS \ Bin \;

को जोड़ा जा सकता है

C: \ Program Files \ Microsoft SQL Server;

इस तरह आप अपनी निश्चित लंबाई के पैठ चर में अधिक स्थान बना सकते हैं और अंत में अपने बिन निर्देशिका स्थान को पेट में समायोजित कर सकते हैं।

आशा है कि यह आपकी मदद करता है!


हां आप बहुत सही हैं। इतना शोध मुझे पता चला है कि पथ चर केवल 2048 वर्ण ले सकता है और जब वर्ण इस चरण में आते हैं, तो पथ चर अधिक वर्ण लेने में सक्षम नहीं होगा। इसलिए मैंने कोशिश की कि आपने क्या सुझाव दिया है और मैं अब ठीक हूं। धन्यवाद
olammy

धन्यवाद! यह एक महान विचार है @ समाधान 1! खुद के बारे में सोचना चाहिए ... :)
Dev-iL

2
यह एक आकर्षण की तरह काम करता है, धन्यवाद! हालाँकि, एक का उपयोग करते समय सतर्क रहना setx PATHहोगा क्योंकि यह सीधे हल करेगा %NEWPATH%और परिणामस्वरूप स्ट्रिंग एक बार फिर से बहुत लंबा हो जाएगा ... इसलिए, इस दृष्टिकोण का उपयोग करते हुए, केवल संवाद और कमांड लाइन का उपयोग नहीं किया जाना चाहिए
आइसफायर

1
@SwapnilKamat यह पूरी तरह से काम नहीं करता है: मैं MiKTeX उपयोग कर रहा हूँ, अपने pdflatexमें हो गया है करने के लिए PATHअगर मैं के स्थान में कहें, pdflatexमें NEWPATH, pdflatexइसे अब और नहीं मिला है ( "कमांड pdflatexमान्यता प्राप्त नहीं है" ...)
Olorin

7
विडंबना यह है कि, Microsoft SQL सर्वर ने इतने सारे पथ चर निर्धारित किए हैं कि यह अकेले अंतरिक्ष को भरता है। मैंने उनका स्थान लेने के लिए PATHS_MSSQL चर बनाया और फिर PATHS_MSSQL% को PATH चर में जोड़ दिया। पथ चर में बहुत सारे स्थान खाली कर दिए।
स्टीव लॉयड

49

अपने पथ चर को साफ करने के कुछ तरीके हैं। सबसे आसान रैपिड पर्यावरण संपादक का उपयोग करना है । यह मुफ्त उपयोगिता होगी,

  1. डुप्लिकेट पथ निकालें (राइट क्लिक> क्लीनअप पथ)
  2. गैर-मौजूद फ़ोल्डर निकालें (लाल रंग में दिखाया गया है जिसे आपको मैन्युअल रूप से हटाने की आवश्यकता है)
  3. छोटे रास्तों के साथ लंबे रास्तों को बदलें (दायाँ क्लिक> लंबे पथ को छोटा करें)।

मैं क्रम में ऊपर दिए गए चरणों का उपयोग करता हूं और केवल 3 सबसे लंबे रास्तों के लिए चरण का उपयोग करता हूं जब तक कि पथ चर आकार फिर से नियंत्रण में न हो।

यदि आप अधिक उन्नत जाना चाहते हैं, तो यहां थोड़ा सी # उपकरण है जिसे आप संशोधित कर सकते हैं कि आप जो भी अन्य तर्क लागू करना चाहते हैं।


इस पोस्ट को पढ़ने से पहले, मैंने कभी भी टूल के बारे में नहीं सुना था लेकिन मुझे खुशी है कि मेरे पास है! साझा करने के लिए धन्यवाद!
जेम्स शॉ

2
यह उपकरण बहुत बढ़िया है! एमएस को इसे आधिकारिक संपादक बनाना चाहिए जो विंडोज़ के साथ आता है!
burzum

35

एक अन्य समाधान या पर्यावरण पथ परिवर्तनशील चर सीमा को बायपास करने के लिए एक अधिक समाधान एक PowerShellस्क्रिप्ट का उपयोग करके अपने पथ (जोड़ें, निकालें या अद्यतन) का प्रबंधन करना है ;

  1. "पाठ संपादित करें" (स्क्रीनशॉट देखें) पर क्लिक करके वर्तमान PATH चर को कैप्चर करें और इसे अपने क्लिपबोर्ड पर कॉपी करें और खराब आश्चर्य से बचने के लिए इसे बैकअप के रूप में पाठ फ़ाइल में सहेजें। यह अनिवार्य नहीं है, लेकिन आपको ठीक होने की अनुमति देनी चाहिए ताकि कुछ गलत हो।

  2. अब जब इसका बैकअप लिया गया है, तो एक नई पॉवरशेल (.ps1) फ़ाइल में निम्नलिखित जोड़ें (फोल्डर पथ (ओं) के साथ नीचे दी गई पहली पंक्ति को संशोधित करना (जिसे आप + साइन के बाद का हिस्सा) जोड़ना चाहते हैं:

    $ नयापाथ = $ एनवी: पथ + ’; C: \ उपयोगकर्ता .... \ FirstFolderToAddToPath; C: \ उपयोगकर्ता .... \ SecondFolderToAddToPath, '

    [पर्यावरण] :: SetEnvironmentVariable ("पथ", $ newPath, "मशीन")

    $ env: Path = $ newPath

यह है कि मैं विंडोज 10 यूआई के साथ खेलने के बाद अपने (लंबे) पैठ चर को वापस पाने में कामयाब रहा, लंबाई सीमा से पकड़ा जा रहा था और अपने अधिकांश पथ को खो रहा था। मुझे उम्मीद है यह मदद करेगा।


धन्यवाद .. यह आसान था। जिज्ञासु whats के बीच अंतर बताने में अंतर क्या है पंक्ति 2 और 3
नायक

लाइन 3 इसे वर्तमान सत्र में सेट करता है, लाइन 2 इसे मशीन डिफ़ॉल्ट के रूप में सेट करता है।
टेटसुजिन नं ओनी

2
PS लंबे पथ के लिए काम करता है, लेकिन पारंपरिक setx /mट्रंकट्स 1048 चार्ट में शामिल हैं :(। आप टेक्स्ट एडिटर में भी पथ संपादित कर सकते हैं और बस कर सकते हैं [Environment]::SetEnvironmentVariable("Path", '\my\new;path1', "Machine")। आपको व्यवस्थापक शेल की आवश्यकता होगी।
शीतल शाह

यह PS का उपयोग करना संभव है, लेकिन GUI का उपयोग नहीं कर रहा है। हम्म, यह कैसे समझ में आता है? Upvoted, धन्यवाद!
लेजेंड्स

10

स्वप्निल के उत्तर के अलावा, ध्यान दें कि आप पथ चर की अधिकतम लंबाई को संशोधित कर सकते हैं - जो अन्यथा 2048 वर्णों तक सीमित है (जबकि किसी एकल पथ में 206 वर्णों की ऐतिहासिक सीमा है)। विंडोज 10 में, आप इसे LongPathsEnabledरजिस्ट्री कुंजी को 1 पर सेट करके प्राप्त करते हैं , जो यहां पाया जा सकता है:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem

रजिस्ट्री संपादक तक पहुँचने के लिए: Windows Key+Rटाइप करें Regedit

स्रोत: https://superuser.com/a/1119980

इस सुपरयूज़र उत्तर पर भी नज़र डालें: https://superuser.com/a/1119980/327009

नीचे टिप्पणी को संबोधित करते हुए: त्रुटि "पर्यावरण चर बहुत बड़ा है" पूरे चर से संबंधित है, वर्तमान में जोड़ा जा रहा एकल पथ नहीं है।


19
क्या यह सटीक सलाह है? PATH वैरिएबल की अधिकतम लंबाई (यानी कई रास्तों का मिलन) 2048 अक्षर है। आपके द्वारा उल्लिखित 260 वर्ण एक पथ की अधिकतम लंबाई है । वे संबंधित हैं लेकिन समान नहीं हैं।
हेंडी इरावन

7

देर से जवाब लेकिन मैं कुछ इसी तरह की तलाश में था और यहाँ समाप्त हो गया। मैंने प्रोग्राम फाइल्स और प्रोग्रामडेटा के लिए सभी रास्तों को चर में बदल दिया (यह 1 वर्ण की तरह बचाता है हालांकि उतना महत्वपूर्ण नहीं है)।

नोडज की तरह कुछ के लिए, मैंने सामान्य रास्ता बदल दिया

C: \ Program Files \ n नोड्स \

सेवा

% ProgramFiles% \ NodeJS \

यह "C: \ Program Files (x86) \" के साथ-साथ "% ProgramFiles (x86)%" का उपयोग करके किया जा सकता है

इसने मुझे कुछ पात्रों को बचाया लेकिन इतना पर्याप्त है कि यह मुझे महसूस करना बंद कर देता है।


7
केवल "C: \ Program Files (x86)" और% X64% को "C: \ Program Files" को बदलने के लिए% x86% का उपयोग क्यों नहीं किया जाता है, ऐसा लगता है कि चरित्र ओवरहेड को कम करने का एक बेहतर तरीका है।
21:21 पर Xorcist

1
@Xorcist - अच्छा! उन लोगों के बारे में कोई पता नहीं था
mark1234

मुझे नहीं लगता कि वे डिफ़ॉल्ट रूप से मौजूद हैं, लेकिन आप उन्हें स्वयं बना सकते हैं।
गेब्रियल मेला

मुझे यह भी पसंद आया, मैंने "c: \ Program FIles" के लिए% PF% बनाया और लगभग 20 बार इसका उपयोग करके मुझे काफी छोटा रास्ता बनाने की अनुमति दी।
लाब्राका

@Xorcist दूसरा चर बनाकर कैसे किया जाता है?
Demodave

5

मैंने पाया कि आप PowerShell के माध्यम से कर सकते हैं।

[System.Environment]::SetEnvironmentVariable("PATH", "C:\Program Files (x86......etc.....", "Machine")

इसलिए मैंने मौजूदा सिस्टम PATH को पकड़ा, जिसे नोटपैड में चिपकाया गया, अपनी नई चीज़ को जोड़ा, फिर ऊपर के "C: \ Program Files" बिट में पेस्ट किया। पथ अद्यतन किया गया। किया हुआ।


4

regedit3000 से अधिक की लंबाई होने पर मेरे मामले में इसे संशोधित करने का प्रयास करें ।

प्रेस Win + Rऔर regeditregedit खोलने के लिए दर्ज करें। अपने पथ के Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentमान पर जाएं और संशोधित Pathकरें। और कंप्यूटर को पुनरारंभ करें, यह काम करना चाहिए।


1
यह मेरे लिए ठीक काम है। मुझे लगता है कि यह अन्य तरीकों की तुलना में आसान है।
शालिष्ठ सेनानायक

1

युक्ति:

कृपया सिस्टम को पुनरारंभ करें। सिस्टम को पुनरारंभ करने के बाद, PATH अब खाली नहीं है, लेकिन 2047 (4095) वर्णों को काट दिया जा सकता है यदि सिस्टम पुनरारंभ कृपया मदद नहीं करता है:

लॉन्च करें c: \ windows \ system32 \ regedit.exe रजिस्ट्री हाइव पर जाएं "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" "पथ" कुंजी से अनावश्यक निर्देशिकाओं को साफ करें सिस्टम को पुनरारंभ करें

नोट: कुछ असाधारण मामलों में यदि सिस्टम कृपया शुरू करने में सक्षम नहीं है:

सुरक्षित मोड में लॉगिन करें कमांड प्रॉम्प्ट शेल खोलें और टाइप करें: reg जोड़ें "HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment" / v पथ / t REG_EXPAND_SZ / d ^% SystemRR ^ ^% \ system32; ^% SystemRoot ^% / च

अधिक जानकारी के लिए: https://software.intel.com/en-us/articles/limitation-to-the-length-of-the-system-path-variable


कम से कम सीमा कैसे बढ़ाएं 4095?
दान एम।

1

अन्य विधियों (जैसे पॉवर्सशेल) के अलावा, मुझे एक अच्छा जीयूआई मिला, "रैपिड एनवायरनमेंट एडिटर" जो बड़े टेक्स्ट मानों को संभाल सकता है।

https://www.rapidee.com/en/download


0

जाहिरा तौर पर रैपिड एनवायरनमेंट एडिटर आपके लिए (@shatil_shah उत्तर से) ऐसा करेगा, लेकिन आप उनके "8dot3" संस्करण के लिए भी मार्ग छोटा कर सकते हैं। आपको इन दो प्रतिस्थापनों के साथ बहुत अधिक माइलेज मिलेगा:

C:\Program Files       --> C:\PROGRA~1
C:\Program Files (x86) --> C:\PROGRA~2

यदि आप अपने वर्तमान पथ को नोटपैड में कॉपी करते हैं, C:\Program Files (x86)तो पहले खोजें और बदलें और फिर C:\Progam Files


-3

Workarround। एडिट टेक्स्ट का उपयोग करें और अपने PATH को टेक्स्ट एडिटर में एडिट करें


2
मैं आपकी सलाह मानने की कोशिश कर रहा हूं। मेरे कंप्यूटर में पर्यावरण चर किस फ़ाइल में संग्रहीत हैं?
गेब्रियल मेला

यह सिर्फ पाठ है। नोटपैड का उपयोग करके इसे खोलें
क्रिस्टोफ़ एडमडिस

@GabrielFair आपको Edit Textकुछ फ़ाइल खोलने के बजाय, बटन पर क्लिक करना होगा ।
AlexMelw
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.