উইন্ডোজ সিস্টেম% PATH% ব্যবহারকারী% PATH- এ নতুন করে চাপানো থেকে বিরত করবেন?


19

আমি জানি যে কীভাবে সিস্টেম বা ব্যবহারকারী নির্দিষ্ট পরিবেশের ভেরিয়েবল সেট করবেন:

উইন্ডোজ এনভায়রনমেন্ট ভেরিয়েবল

এখন, সমস্যাটি হচ্ছে PATHভেরিয়েবলটি এমন আচরণ করা হয় যে আপনি ব্যবহারকারী PATH এর জন্য যে মানটি প্রবেশ করেছেন তা স্বয়ংক্রিয়ভাবে সিস্টেম PATH এ যুক্ত হবে এবং এটি কার্যকর প্যাথ ভেরিয়েবল হবে।

অর্থাৎ, আমার কাছে আছে বলে দিন

(পদ্ধতি) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...

এবং (ব্যবহারকারী) PATH=C:\Program Files\Bar\bin(মনে রাখবেন যে %PATH%এই মানটিতে নেই)

তারপরে এই ব্যবহারকারীর ফলাফলের পরিবেশগত পরিবর্তনশীল হবে:

(কার্যকর) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin

যাইহোক, আমি বরং এটি চাই যে খুব নির্দিষ্ট ওএস ব্যবহারকারী অ্যাকাউন্টের জন্য প্যাথ এনভায়রনমেন্ট ভেরিয়েবলের PATH bar\binএর শুরুতে PATH এর শুরুতে ডিরেক্টরি থাকা উচিত ।

PATHউইন্ডোজকে সিস্টেম PATHভেরিয়েবলের সাথে যুক্ত করার পরিবর্তে সেই ব্যবহারকারীর মান সহ কোনও ব্যবহারকারীর ভেরিয়েবল সম্পূর্ণরূপে ওভাররাইড করার জন্য কি কোনও সঠিক উপায় আছে ?

দ্রষ্টব্য: স্পষ্টতই, একটি ব্যাচ ফাইল থেকে, আপনার পছন্দমতো env.vars সেট এবং টুইট করতে পারেন সেভাবেই এই সমস্ত কিছুই আসে যায় না।


কেন কেবল ব্যবহারকারী বিভাগটিকে উপেক্ষা করবেন না। ব্যবহারকারী পাথের ভেরিয়েবলটি মুছুন এবং সিস্টেম পাথ ভেরিয়েবলের মধ্যে সমস্ত কিছু রেখে দিন, আপনি যেভাবে চান সেভাবে।
কেভিন ফেগান

1
@ কেভিনফেগান: ঠিক আছে, কারণ মেশিনে কিছু পরিষেবা সেই সিস্টেমে নির্ভর করে PATHএবং এই নির্দিষ্ট ব্যবহারকারীর অ্যাকাউন্টটি আলাদা করে আরও ভালভাবে পরিবেশন করা যেতে পারে PATH। আমি জানি যে অনেকগুলি কাজের ক্ষেত্র রয়েছে, তবে এটি অর্জনের জন্য বাক্সের বাইরে / ওএস / রেজিস্ট্রি স্তরে কিছু আছে কিনা তা সম্পর্কে আমি আগ্রহী ছিলাম।
মার্টিন

উত্তর:


3

আপনার যদি কেবল কমান্ড প্রম্পট সেশনের জন্য কাজ করার প্রয়োজন হয় তবে /programming/17404165/how-to-run-a-command-on প্রতি প্রোফাইল / আরম্ভ ব্যাচ ফাইল তৈরি করুন এবং এটি রেজিস্ট্রিতে কনফিগার করুন -কম্যান্ড-প্রম্পট-স্টার্টআপ-ইন উইন্ডোজ । যেমন,

reg add "HKCU\Software\Microsoft\Command Processor" /v AutoRun ^
  /t REG_EXPAND_SZ /d "%"USERPROFILE"%\init.cmd" /f

তারপরে b ব্যাচের ফাইলটিতে কেবল PATH এ পরিবর্তন করুন। যেমন,

SET USER_PATH=c:\whatever
SET PATH=%USER_PATH%;%PATH%

0

আমার একই সমস্যা ছিল এবং এটি আমার পক্ষে কাজ করেছে:

এর মাধ্যমে আপনি "ব্যবহারকারীর পথ পরিবর্তনশীল" পেতে পারেন:

>reg query HKCU\Environment /v path

আউটপুট (আমার মেশিনে) হ'ল:

HKEY_CURRENT_USER\Environment
    path    REG_SZ    C:\Program Files (x86)\GnuWin32\bin

তবে তারপরে আপনাকে এটি বিশ্লেষণ করতে হবে এবং প্রাসঙ্গিক অংশটি ব্যবহার করতে হবে।

আমি এখানে সমাধানটি পড়েছি এবং আমার মেশিনে পরীক্ষা করেছি।


-1

সিস্টেম ভেরিয়েবলকে কীভাবে উপেক্ষা করবেন তা আমি জানি না, তবে আমি জানি যে আপনি যদি সেশন ভেরিয়েবলগুলি ( SETকমান্ডের মাধ্যমে ) ব্যবহার করেন তবে তারা অন্যান্য ভেরিয়েবলের চেয়ে অগ্রাধিকার গ্রহণ করে। সুতরাং আপনি SET PATH=C:\Program Files\Bar\binনির্দেশ ব্যবহার করতে পারেন এবং আপনার কাঙ্ক্ষিত পথটি চলকটির প্রথম অংশ হবে।

এখানে একটি বৈধ রেফারেন্স, এবং আমি এখানে পৃষ্ঠা থেকে একটি সাধারণ সময়কাল রিপোর্ট:

যদি একই নামের ভেরিয়েবলগুলি ব্যবহারকারী এবং মেশিন এনভায়রনমেন্ট ভেরিয়েবল উভয় হিসাবে সংরক্ষণ করা হয় তবে ব্যবহারকারী ভেরিয়েবলটি অগ্রাধিকার গ্রহণ করবে। যদি একটি সেশন ভেরিয়েবল তৈরি করা হয় যা একই নামের সাথে কোনও ব্যবহারকারী এবং / অথবা মেশিন এনভায়রনমেন্ট ভেরিয়েবলের চেয়ে অগ্রাধিকার গ্রহণ করবে।


এটি একটি দরকারী রেফারেন্স, তবে আপনি যে প্রথম বাক্যটি উদ্ধৃত করেছেন সেটি হ'ল একটি অতি-জেনারালাইজেশন। PATHপরিবর্তনশীল একটি ব্যতিক্রম (বিশেষ ক্ষেত্রে) হল - ব্যবহারকারীর পরিবর্তনশীল নেই না সিস্টেম ভেরিয়েবল বেশি প্রাধান্য নিতে। "সেশন ভেরিয়েবল" ব্যবহারকারী এবং সিস্টেম প্রি-সেট ভেরিয়েবল উভয়ের চেয়ে বেশি প্রাধান্য পাবে তা সত্য, তবে আপনি কীভাবে কোনও ব্যবহারকারীর জন্য সেশন ভেরিয়েবলটি স্বয়ংক্রিয়ভাবে সেট করবেন ?  জি-উইজ এই প্রশ্নের উত্তর দিয়েছেন , এবং, এএএফআইসস, আপনি সেই উত্তরের সাথে কিছু যোগ করেন নি।
স্কট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.