विंडोज़ में पर्यावरण चर का निर्यात और आयात कैसे करें?


93

मैंने पाया कि मेरे पर्यावरण चर को विभिन्न मशीनों पर सिंक करना मुश्किल है। मैं बस एक कंप्यूटर से सेटिंग्स को निर्यात करना चाहता हूं और अन्य लोगों को आयात करना चाहता हूं।

मुझे लगता है कि यह संभव होना चाहिए, लेकिन यह नहीं पता कि यह कैसे करना है। क्या कोई मेरी मदद कर सकता है? धन्यवाद।

जवाबों:


119

आप निम्नलिखित दो कुंजियों को निर्यात करने के लिए RegEdit का उपयोग कर सकते हैं:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

HKEY_CURRENT_USER\Environment

पहला सेट सिस्टम / वैश्विक पर्यावरण चर हैं; दूसरा सेट उपयोगकर्ता-स्तरीय चर हैं। आवश्यकतानुसार संपादित करें और फिर नई मशीन पर .reg फ़ाइलें आयात करें।


2
कार्यक्रम regedit चलाएं, प्रश्न में कुंजियों को हाइलाइट करें और फिर "फ़ाइल -> निर्यात" विकल्प का उपयोग करें ताकि इसे फ़ाइल के रूप में सहेजें
Silvertiger

आयात केवल व्यवस्थापक अनुमतियाँ होने पर .reg फ़ाइल को डबल क्लिक करने के साथ किया जाता है।
thanos.a

नोट: यह सभी पर्यावरण चर (EV) नहीं मिलता है! मैंने बस एक कमांड सेट किया और अपने सभी ईवी को गड़बड़ कर दिया। मैं इस रजिस्ट्री में गया और केवल मूल ईवी वहां थे। मैंने एक सिस्टम रिस्टोर किया और अपने सभी लापता ईवी को पाथ वर्जन में वापस पा लिया। यह रजिस्ट्री केवल कुछ आवश्यक ईवी रखती है, लेकिन आपके कार्यक्रम के किसी भी ईवी और न ही आपके द्वारा सेट किए गए किसी भी पथ पर। सावधान! एक कमांड लाइन पर: echo path> mybackup.txt या set> mybackup.txt पूरे बैकअप के लिए सभी var / पाथ और all sys vars / पाथ पर।
ejbytes

@ejbytes यह आपके वैश्विक वैरिएबल की प्रतिलिपि बनाता है जिन्हें आप सेट करते हैं लेकिन रजिस्ट्री के माध्यम से सीएलआई के साथ निर्यात करना शायद बेहतर होता है।
अलेक्जेंडर

87

मैं कमांड प्रॉम्प्ट से SET कमांड का उपयोग सभी वेरिएबल्स को निर्यात करने के लिए करूँगा, बजाय इसके कि ऊपर बताए अनुसार केवल PATH।

C:\> SET >> allvariables.txt

चर को आयात करने के लिए, एक साधारण लूप का उपयोग कर सकते हैं:

C:\> for /F %A in (allvariables.txt) do SET %A

11
आप सभी निर्यात किए गए Env को वापस कैसे आयात करते हैं। Vars। allvariables.txt से
ऐश

बहुत अच्छा। मैंने बस एक खराब पथ सेट करने के लिए अपने सभी पथ संस्करण खो दिए और एक सिस्टम रिस्टोर करना पड़ा। सौभाग्य से मेरे पास हाल ही में पहले जैसा अपडेट था। मैंने सिर्फ इस कमांड के साथ बैकअप किया है। अच्छा लगा। उस रजिस्ट्री समाधान में केवल मूल संस्करण होते हैं, लेकिन कुछ भी नहीं जो "आप" (जैसा कि एक प्रोग्रामर नए बिल्ड के लिए कहता है) बनाया या किसी भी अन्य संस्करण को बनाया है।
ejbytes

1
विंडोज 7 64-बिट पर, अगर उपयोगकर्ता के स्तर और सिस्टम स्तर पर दो पहचान नाम वाले चर हैं, तो यह कमांड उपयोगकर्ता स्तर के चर की पूर्वता देता है और सिस्टम स्तर एक को छोड़ देता है। यह व्यवहार समझ में आता है, लेकिन यह पता लगाना एक मामले में उल्लेख के लायक हो सकता है कि कोई भी प्रत्येक चर प्रकार से पूर्ण सेट की उम्मीद कर रहा था।
GoldDragonTSU

1
इस कमांड ने काम किया:set > "C:\Users\xx\Desktop\envir variable.txt"
जिनसो

1
ऐश का जवाब देने के लिए, आप सभी वेरिएबल्स को वापस आयात करने के लिए cmd प्रॉम्प्ट में लूप के लिए एक सरल का उपयोग कर सकते हैं:for /F %A in (allvariables.txt) do SET %A
गेब्रियल

17

उपयोगकर्ता चर निर्यात करने के लिए, कमांड प्रॉम्प्ट खोलें और / e के साथ regedit का उपयोग करें

उदाहरण :

regedit /e "%userprofile%\Desktop\my_user_env_variables.reg" "HKEY_CURRENT_USER\Environment"

13

कम्बाइन @vincsilver और @jdigital कुछ संशोधनों के साथ के जवाब,

  1. .regवर्तमान निर्देशिका के लिए निर्यात
  2. दिनांक चिह्न जोड़ें

कोड:

set TODAY=%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%

regedit /e "%CD%\user_env_variables[%TODAY%].reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\global_env_variables[%TODAY%].reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

आउटपुट चाहेंगे:

global_env_variables[2017-02-14].reg
user_env_variables[2017-02-14].reg

3
आज चर पर निर्भर करता है % DATE% जो कैसे विंडोज लोकेल वरीयताओं पर निर्भर है। उपरोक्त आदेश भारत के लिए काम नहीं करता है। यह काम करता है -> TODAY =% DATE: ~ 4,2% -% DATE: ~ 7,2% -% DATE: ~ 10,4%
राकेश एन

5

आप कमांड लाइन या रजिस्ट्री में पर्यावरण चर तक पहुंच प्राप्त कर सकते हैं।

कमांड लाइन

यदि आप एक विशिष्ट पर्यावरण चर चाहते हैं, तो बस उसका नाम लिखें (उदा PATH), उसके बाद >लिखने के लिए a , और फ़ाइल नाम। पथ पथ पर फ़ाइल नामक PATH परिवेश चर को निम्न डंप करेगा।

C:\> PATH > path.txt

रजिस्ट्री विधि

विंडोज रजिस्ट्री सभी पर्यावरण चर रखती है, अलग-अलग जगहों पर निर्भर करती है कि आप किस सेट के बाद हैं। आप उन्हें अन्य पीसी में स्थानांतरित करने के लिए रजिस्ट्री आयात / निर्यात कमांड का उपयोग कर सकते हैं।

सिस्टम चर के लिए:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

उपयोगकर्ता चर के लिए:

HKEY_CURRENT_USER\Environment

1
मेरी मशीन पर, PATH> (या PATH >>) ने एक खाली पाठ फ़ाइल लौटा दी, जबकि SET >> ने काम किया। विंडोज 7 x64 बिट्स।
पैट्रिक

Win7x64 पर मेरे लिए काम किया। सुनिश्चित नहीं हैं कि आवश्यकताएं क्या हैं।
Kissaki

आप किस फ़ोल्डर से इस कमांड को निष्पादित करते हैं? खान ने कहा कि रास्ता नहीं मिल रहा है।
अज़र्सपॉट

2

ऐसा करने के लिए मेरी पसंदीदा विधि यह है कि एक यूजर स्क्रिप्ट और सिस्टम वैरिएबल दोनों को एक ही बैकअप फ़ाइल में संयोजित करने के लिए इसे एक बैच स्क्रिप्ट के रूप में लिखें, जैसे कि एक environment-backup.batफ़ाइल बनाएं और उसमें डालें:

@echo off
:: RegEdit can only export into a single file at a time, so create two temporary files.
regedit /e "%CD%\environment-backup1.reg" "HKEY_CURRENT_USER\Environment"
regedit /e "%CD%\environment-backup2.reg" "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

:: Concatenate into a single file and remove temporary files.
type "%CD%\environment-backup1.reg" "%CD%\environment-backup2.reg" > environment-backup.reg
del "%CD%\environment-backup1.reg"
del "%CD%\environment-backup2.reg"

यह बनाता है environment-backup.regजिसे आप मौजूदा पर्यावरण चर को फिर से आयात करने के लिए उपयोग कर सकते हैं। यह नए चरों को जोड़ेगा और ओवरराइड करेगा , लेकिन मौजूदा वाले को नहीं हटाएगा :)


2

यहाँ मेरा PowerShell तरीका है

gci env:* | sort-object name | Where-Object {$_.Name -like "MyApp*"} | Foreach {"[System.Environment]::SetEnvironmentVariable('$($_.Name)', '$($_.Value)', 'Machine')"}

यह क्या करता है

  1. सभी पर्यावरण चर को स्कूप करता है
  2. उन्हें छानती है
  3. किसी अन्य मशीन पर उन्हें फिर से बनाने के लिए आवश्यक स्वरूपित PowerShell का उत्सर्जन करता है (मान लिया जाता है कि सभी मशीन स्तर पर सेट हैं)

इसलिए स्रोत मशीन पर इसे चलाने के बाद, बस लक्ष्य मशीन पर आउटपुट ट्रांसफर करें और निष्पादित करें (मशीन स्तर पर सेटिंग करते समय एलिवेटेड प्रॉम्प्ट)

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