उपयोगकर्ता-विशिष्ट पर्यावरण चर से अलग वैश्विक पर्यावरण चर कैसे सूचीबद्ध करें?


13

विंडोज में (जैसे संस्करण 10) आप कमांड का उपयोग करके पर्यावरण चर को सूचीबद्ध कर सकते हैं

set

आप केवल उन पर्यावरण चर को कैसे सूचीबद्ध करते हैं, जो सभी उपयोगकर्ताओं के लिए समान हैं या वर्तमान परिवेश या सत्र के लिए केवल पर्यावरण चर हैं?

जवाबों:


17

Microsoft की तुलना में चीजें थोड़ी अधिक जटिल हैं कभी-कभी ऐसा लगता है।

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

सभी उपयोगकर्ताओं के लिए सामान्य

reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"

वर्तमान उपयोगकर्ता सत्र के लिए विशिष्ट

reg query HKCU\Environment
reg query "HKCU\Volatile Environment"

उपयोगकर्ता द्वारा निर्धारित

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

C:\>setx test removeme

SUCCESS: Specified value was saved.

C:\>reg query "HKCU\Environment"

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    test    REG_SZ    removeme

यदि आप set variable=valueकमांड का उपयोग करते हैं , तो चर तुरंत उपलब्ध है, लेकिन रजिस्ट्री में संग्रहीत नहीं है। आप regउन्हें सूचीबद्ध करने के लिए आदेश का उपयोग नहीं कर सकते, हालांकि वे इसके द्वारा दिखाए गए हैं set। कमांड-प्रॉम्प्ट सत्र को समाप्त करने के बाद ये अस्थायी वातावरण चर नहीं बने रहते हैं।

गतिशील पर्यावरण चर

ऐसे निर्माण होते हैं जो पर्यावरण चर की तरह काम करते हैं जो इस तरह से रजिस्ट्री में संग्रहीत नहीं होते हैं। उदाहरण के लिए:

echo %TIME%

1
बस एक जिज्ञासा: क्या रजिस्ट्री में पहले जोड़े गए चर को ताज़ा करना संभव है ? उदाहरण के लिए setx test removemeकुछ set test %test%ऐसा है जिससे आप एक सरल के साथ सूचीबद्ध सभी चर हो सकते हैं set? मैं सोच रहा था कि अनुरोध पर उन सभी को स्पष्ट करने के लिए एक कमांड / बैच स्क्रिप्ट को लागू करना संभव है ...
Hastur

@ हस्तूर: हां, यह एक नया वैरिएबल बनाने के लिए काम करेगा जो तुरंत उपलब्ध और लगातार दोनों होगा।
RedGrittyBrick

@hastur @RedGrittyBrick - यह संभव है लेकिन विंडोज़ cmd में एक oneliner नहीं है। यदि आप चॉकलेट को स्थापित करते हैं तो इसकी refreshenv.cmdउपयोगिता है जो कोड की 10 लाइनें हैं और मूल रूप से यह रजिस्ट्री प्रविष्टियों को रीफ्रेश और रीफ्रेश करती है
maoizm

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

2

अतिरिक्त लाइनों और काले स्थानों के बिना स्वच्छ आउटपुट के लिए निम्नलिखित कमांड का उपयोग करें cmd.exe:

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

FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I

वैश्विक (सिस्टम) पर्यावरण चर:

FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I

यह विंडोज 7-10 में काम करता है, और शायद पहले के संस्करणों में भी।


इसके लिए धन्यवाद। ध्यान दें कि अगर यह इसमें स्थान रखता है तो यह मूल्य का हिस्सा गिरा देता है। तो एक रजिस्ट्री प्रविष्टि की तरह ही VS140COMNTOOLS REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools पता चलता है VS140COMNTOOLS=C:\Program
धातु

@ इस कोने के मामले की रिपोर्टिंग के लिए धन्यवाद। यदि आप रिक्त स्थान के लिए वर्कअराउंड पाते हैं तो उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें - मेरे पास अब कोई विंडोज़ कंप्यूटर नहीं है
maoizm

1
मैंने उस आशय का एक अद्यतन प्रस्तुत किया है। आपको या कुछ मॉड को इसे अनुमोदित करने की आवश्यकता होगी।
धातु

1

बैच कमांड टाइप करें: इको% अस्थायी%

यदि "अस्थायी" वातावरण चर में "H: \ Users \ amacm \ AppData \ Local" शामिल है, तो Windows तुरंत निम्नलिखित के साथ प्रतिक्रिया देगा:

एच: \ Users \ amacm \ AppData \ Local

अगर "temp" नाम का कोई पर्यावरण चर नहीं है, तो Windows निम्नलिखित के साथ प्रतिक्रिया देगा:

% अस्थायी%

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