কীভাবে ব্যবহারকারী-নির্দিষ্ট পরিবেশের ভেরিয়েবলগুলি থেকে বিশ্বব্যাপী পরিবেশের পরিবর্তনশীল তালিকাভুক্ত করা যায়?


13

উইন্ডোজ (উদাহরণস্বরূপ সংস্করণ 10) আপনি কমান্ডটি ব্যবহার করে পরিবেশের পরিবর্তনশীল তালিকাভুক্ত করতে পারেন

set

আপনি কীভাবে কেবল পরিবেশের ভেরিয়েবলগুলি তালিকাভুক্ত করবেন যা সমস্ত ব্যবহারকারীর জন্য একই বা কেবল বর্তমান পরিবেশক বা সেশনের জন্য পরিবেশের পরিবর্তনশীল?

উত্তর:


17

মাইক্রোসফ্ট কখনও কখনও এটি দেখানোর চেয়ে জিনিসগুলি আরও জটিল হয়।

এনভায়রনমেন্ট ভেরিয়েবলের অনেকগুলি রেজিস্ট্রিতে সংরক্ষিত থাকে। এর অর্থ আপনি 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? আমি ভাবছিলাম যে অনুরোধের পরে তাদের সমস্ত স্পষ্ট করার জন্য একটি কমান্ড / ব্যাচের স্ক্রিপ্ট প্রয়োগ করা সম্ভব ...
হাস্তুর

@ হাস্তুর: হ্যাঁ, এটি তাত্ক্ষণিকভাবে উপলব্ধ এবং অধ্যবসায়ী একটি নতুন পরিবর্তনশীল তৈরি করতে কাজ করবে।
রেডগ্রিটিব্রিক

@ হস্তুর @ রেডগ্রিটিব্রিক - এটি সম্ভব তবে উইন্ডোজ সেন্টিমিডিতে অবশ্যই অনলাইনার নয়। আপনি যদি refreshenv.cmd
চকোলেটি

না SETকমান্ড ডায়নামিক পরিবেশ ভেরিয়েবল দেখাবেন? আমি একটি অধিবেশন চলাকালীন মাইক্রোসফ্টের বিল্ড সরঞ্জামগুলি সেট করে এমন কিছু এবং সমস্ত কিছু সন্ধান করার চেষ্টা করছি।
Ungeheuer

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
ধাতু

@ এই কর্নারের কেসটি রিপোর্ট করার জন্য মেটাল ধন্যবাদ। উত্তর
স্থানটি নির্দ্বিধায় নির্ণয় করুন

1
আমি সেই প্রসঙ্গে একটি আপডেট জমা দিয়েছি। আপনার বা কিছু মোড এটিকে অনুমোদন করতে হবে।
ধাতু

1

ব্যাচের কমান্ডটি টাইপ করুন: প্রতিধ্বনি% টেম্পল%

যদি "টেম্প" পরিবেশের ভেরিয়েবলটিতে "এইচ: \ ব্যবহারকারীরা cm এমএমসিএম \ অ্যাপডাটা \ লোকাল" থাকে তবে উইন্ডোজ তত্ক্ষণিকভাবে নিম্নলিখিতগুলির সাথে প্রতিক্রিয়া জানাবে:

এইচ: \ ব্যবহারকারীরা \ amacm \ AppData \ স্থানীয়

যদি "টেম্প" নামে পরিবেশগত পরিবর্তনশীল না থাকে তবে উইন্ডোজ নিম্নলিখিতগুলির সাথে প্রতিক্রিয়া জানাবে:

% টেম্প%

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.