টুইস্টি ইমপারসোনেটর তাদের উত্তরে যা বলেছিল তা সবই সঠিক। ব্যবহারকারী পাথের পরিবর্তনশীল সংযোজনীয় এই ধারণাটি হাইলাইট করা হয়েছে এবং আমি বিশ্বাস করি যে এই পার্থক্যের পরিণতিতে কিছু অতিরিক্ত চিকিত্সার প্রয়োজন।
পাথ =% পাথ% (সিস্টেম); % পাথ% (ব্যবহারকারী)
যখন আপনি একটি এক্সিকিউটেবল প্রোগ্রাম (বা যে কোন এক্সিকিউটেবল স্ক্রিপ্ট, যেমন চালানো .bat
, .vbs
ইত্যাদি) আপনি সম্পূর্ণরূপে যোগ্যতাসম্পন্ন পথ প্রদান করতে হবে না।
উদাহরণস্বরূপ, চালানোর জন্য java
, আপনি এগুলির যে কোনওটিতে টাইপ করতে পারেন:
C:/Program Files (x86)/Java/jre6/bin/java -version
java.exe -version
java -version
প্রথম উদাহরণটিতে সম্পূর্ণরূপে যোগ্য পথ ব্যবহার করা হয়েছে। এটি সর্বদা সেই সঠিক পথে জাভাটির সংস্করণ ব্যবহার করবে।
দ্বিতীয় উদাহরণটি %Path%
এনভায়রনমেন্ট ভেরিয়েবলের প্রতিটি ডিরেক্টরিতে গিয়ে একটি এক্সিকিউটেবল ফাইলের সন্ধান করবে java.exe
। এটি পাওয়া যায় এমন প্রথমটি চালাবে এবং অনুসন্ধান বন্ধ করবে। যদি java.exe
কোথাও কোথাও দু'টি ফাইলের নামকরণ করা হয় %Path%
তবে পাওয়া যায় এমন প্রথমটি ব্যবহৃত হয়।
দ্বিতীয়টির মতো তৃতীয় উদাহরণটি তালিকাভুক্ত ডিরেক্টরিগুলি পুনরাবৃত্তি করবে %Path%
। অতিরিক্ত হিসাবে, একটি ফাইল এক্সটেনশান সরবরাহ করা হয়নি, তাই %PATHEXT%
পরিবেশগত পরিবর্তনশীল নির্দিষ্ট ক্রমে ফাইলের নামের সাথে এক্সিকিউটেবল ফাইল এক্সটেনশনের একটি তালিকা যুক্ত করা হয় । বিভিন্ন নামে ফাইল থাকে তাহলে java.com
, java.exe
, java.bat
, ইত্যাদি কোথাও %Path%
, কেবলমাত্র প্রথম এমন একজনের সাক্ষাত পেলেন ব্যবহার করা হয়।
নিম্নলিখিত ব্যাচ ফাইল তৈরি করে আপনি আপনার সিস্টেমে এক্সিকিউটেবল পাথ এক্সটেনশনের তালিকা দেখতে পারেন:
@echo off
echo %PATHEXT%
pause
আমার মেশিনে, এগুলি হ'ল:
.COM; .EXE; .bat; .CMD; .VBS; .VBE; .js; .JSE; .WSF; .WSH; .MSC; .PY
এই সব কি মানে?
ইন সম্পূর্ণ বিপরীতে অন্যান্য এনভায়রনমেন্ট ভেরিয়েবল করতে, ব্যবহারকারি পথ আপনি সিস্টেম পাথ ওভাররাইড করতে অনুমতি দেয় না। হুবহু বিপরীত ক্ষেত্রে। উপরের উদাহরণগুলি থেকে, এমন অনেকগুলি মামলা রয়েছে যেখানে আপনি জাভার ডিফল্ট সংস্করণ পরিবর্তন করতে পারেন। তবে, যদি ইতিমধ্যে সিস্টেমের পথে কোনও জাভা সংস্করণ তালিকাভুক্ত থাকে তবে সেই সংস্করণটি সর্বদা খুঁজে পাওয়া যাবে কারণ পথটি বাম থেকে ডানে ডানদিকে অনুসন্ধান করা হয়েছে এবং ব্যবহারকারীর পাথটি ডানদিকে সংযুক্ত করা হয়েছে first - বামদিকে সিস্টেমের পথ সহ।
আমি এটি সম্পর্কে কি করতে পারি?
আপনার যদি সিস্টেম এনভায়রনমেন্ট ভেরিয়েবলের অ্যাক্সেস না থাকে তবে আপনি ব্যবহারকারী পাথ ব্যবহার করে সিস্টেমের পথে ডিফল্ট প্রোগ্রামগুলিকে ওভাররাইড করতে পারবেন না। (আসলে, এটি অবশ্যই এইভাবেই হবে, বা নির্দিষ্ট কিছু প্রোগ্রাম সঠিকভাবে কাজ করা বন্ধ করবে এবং এটি আপনার সিস্টেমকে দূষিত সফ্টওয়্যার দ্বারা ছলনার জন্য উন্মুক্ত করবে। কেউই এটি চায় না wants)
পরিবর্তে, আপনি অবশ্যই একটি নির্দিষ্ট সংস্করণ ব্যবহার করতে হবে তবে আপনাকে অবশ্যই একটি সম্পূর্ণ যোগ্য পাথ ব্যবহার করতে হবে।