আমার প্যাথ পরিবেশ পরিবর্তনশীল কেন কমান্ড প্রম্পট থেকে পৃথক?


11

কিছুটা গুরুত্বপূর্ণ পটভূমি: আমার সংস্থার একটি জেনেরিক লগইন ভিবিএস স্ক্রিপ্ট রয়েছে যা ব্যবহারকারীর PATH এনভায়রনমেন্ট পরিবর্তন করার পরে লগইন করার সময় এবং সফ্টওয়্যারটি চালানোর অনুমতি দেয় যা ম্যাপযুক্ত ডিএফএস ফাইলের উপর নির্ভরশীলতা রয়েছে। আমি সম্প্রতি আমার উইন্ডোজ Enterprise এন্টারপ্রাইজ মেশিনে উইন্ডোজ পাওয়ারশেল এসডিকে ইনস্টল করেছি এবং পাওয়ারের শেল কমান্ড লাইন থেকে আমার PATH এনভায়রনমেন্ট ভেরিয়েবলটি পরিবর্তন করার চেষ্টা করেছি।

এটি অনুসরণ করে আমি লক্ষ্য করেছি যে আমি আর এই অ্যাপ্লিকেশনগুলি চালিত করতে পারছি না যা এই লগইন PATH পরিবর্তনের সাথে মিলে যায় এবং পরিবেশ ভেরিয়েবল সম্পাদক PATH 'echo %PATH%'কমান্ড প্রম্পট থেকে ইস্যু করার সময় যা প্রদর্শিত হচ্ছে তার থেকে আলাদা কিছুতে সেট করা হয়েছিল ।

সুতরাং উদাহরণস্বরূপ (সরলীকরণ), পরিবেশের পরিবর্তনশীল সম্পাদক ( My Computer properties -> Advanced System Settings -> Environment Variables) থেকে আমার

 C:\MyDir\; C:\MyOtherDir

যদিও আমি যখন 'echo %PATH%'কোনও কমান্ড প্রম্পট থেকে পাই তখন:

 C:\MyDir\

অন্য কারও কি একইরকম সমস্যা ছিল এবং এর মধ্যে একরকম রেজোলিউশন ছিল? যখন আমি সাহায্যের জন্য গুগল করলাম, আমি এটার উপরে এসেছি:

(সম্পর্কিত?) স্ট্যাক ওভারফ্লো থ্রেড

এটি আমার কাছে ঘটেছিল যে যদি লগইন স্ক্রিপ্টটি আমার এক্সপ্লোরার এক্সেক্স পরিবেশ ছাড়া অন্য কোনও কিছু দ্বারা শুরু করা হয়েছিল, তবে সমস্যাটি ছিল। যাইহোক, আমি যখন লগইন স্ক্রিপ্টটি নিজে চালিত করি, কমান্ড প্রম্পট থেকে আমার PATH অপরিবর্তিত ছিল। এটি পাওয়ারশেলের সাথে কী করবে? এটি কীভাবে এটি সম্পূর্ণরূপে এই ইনস্টলের সাথে সংযুক্ত রয়েছে তা অনুপস্থিত।


পাওয়ারশেলের পথে কীভাবে আপনি পরিবর্তন করেছেন? কোথায় আপনি% PATH% প্রতিধ্বনি করেছেন? সেমিডি.এক্সে?
ওয়ার্নার হেনজে

উত্তর নীচে জেনিয়াস হয়।
এসডসোলার

উত্তর:


11

উইন্ডোজের দুটি পরিবেশ এনভায়রনমেন্ট ভেরিয়েবল সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল এবং ইউজার এনভায়রনমেন্ট ভেরিয়েবল রয়েছে । আপনি ব্যবহার করে থাকেন echo %PATH%, আপনি আপনার দেখতে হবে ব্যবহারকারী এনভায়রনমেন্ট ভেরিয়েবল PATH । যদি কোনও ব্যবহারকারীর ভেরিয়েবল সংজ্ঞায়িত না হয় তবে কেবল ব্যবহারকারী প্রসেসের জন্য সিস্টেম ভেরিয়েবল কার্যকর হবে।

PATHবিভাজক ;একটি ফাঁকা দ্বারা অনুসরণ করা উচিত নয়।

নিম্নলিখিত মাইক্রোসফ্ট নোট সহায়ক হতে পারে:

আপনি নিম্নলিখিত রেজিস্ট্রি কী সম্পাদনা করে ব্যবহারকারীর পরিবেশ পরিবর্তনগুলি পরিবর্তন করতে পারেন:

   HKEY_CURRENT_USER \ 
         Environment

আপনি নিম্নলিখিত রেজিস্ট্রি কী সম্পাদনা করে সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলগুলি সংশোধন করতে পারেন:

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

নোট করুন যে কোনও পরিবেশের পরিবর্তনশীল যা প্রসারিত করা দরকার (উদাহরণস্বরূপ, আপনি যখন ব্যবহার করবেন %SYSTEM%) অবশ্যই রেজিস্ট্রিতে REG_EXPAND_SZরেজিস্ট্রি মান হিসাবে সংরক্ষণ করতে হবে । REG_SZরেজিস্ট্রি থেকে পড়লে ধরণের কোনও মান প্রসারিত হবে না।

অতিরিক্ত মন্তব্য: যখনই কোনও প্রক্রিয়া তার পরিবেশ পরিবর্তন করে (রেজিস্ট্রি সেটিংস পরিবর্তে যা নতুন প্রক্রিয়ার জন্য পরিবেশকে সংজ্ঞায়িত করে), পরিবর্তনগুলি কেবল শিশু প্রক্রিয়াগুলির জন্যই দৃশ্যমান।


1
আমি এক্সেলের পয়েন্টটিতে জোর দিতে চাই যদি আপনার যদি পরিবেশগত ভেরিয়েবলগুলি পরিবর্তন করতে হয় তবে আপনার রেজিস্ট্রি পরিবর্তন করা দরকার। প্রকৃতপক্ষে আমি এটিকে সাহায্য করার জন্য একটি পাওয়ারশেল ফাংশন তৈরি করেছি: কম্পিউটারের
গাই টমাস

1
পরিবর্তিত করার জন্য কোনও মান নেই, কেবল দুটি ভেরিয়েবল tmpএবং temp। আপনি কি নিশ্চিত যে এটি ব্যবহারকারীর জন্য পথ, এটি সংশোধন করা উচিত?
জনি_ডি

এটি কাজ করে না বলে মনে হচ্ছে (কমপক্ষে রিবুটের আগে)। পাথ ভেরিয়েবলটি এইচকেসিইউ not পরিবেশে নেই, সেন্টিমিডি.এক্সে পাথ ভেরিয়েবলটি সঠিকভাবে দেখায়, তবে চালু হওয়া অ্যাপ্লিকেশনগুলি এখনও পুরানো পাথের পরিবর্তনশীলটি দেখতে পাচ্ছে।
মার্টিন আরজারামি

@ মার্টিন: হ্যাঁ, চালু হওয়া অ্যাপ্লিকেশনগুলি রেজিস্ট্রি পরিবর্তনগুলি স্বীকৃতি দেয় না, কারণ তারা অ্যাপ্লিকেশন শুরু করার সময় পরিবেশের তাদের মেমরি অনুলিপি পান। এই অনুলিপি পিতা-মাতার প্রক্রিয়ার উপর নির্ভর করে যা উপ-প্রক্রিয়াগুলি শুরু করে। যদি সেগুলি উদাহরণস্বরূপ উইন্ডোজ এক্সপ্লোরার থেকে শুরু হয় তবে নতুন PATH পেতে আপনাকে এক্সপ্লোরার পুনরায় চালু করতে হবে।
এক্সেল কেম্পার

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