পাওয়ারশেলে, স্কোপিংয়ের মাধ্যমে বিশ্বব্যাপী পরিবেশকে প্রভাবিত করা থেকে স্ক্রিপ্টগুলিতে বস্তু (ভেরিয়েবল, উপকরণ, ফাংশন, ইত্যাদি) রাখার কথা রয়েছে। এটি কমান্ড লাইনে সূক্ষ্মভাবে কাজ করবে বলে মনে হচ্ছে, তবে আইএসই তে নয়।
এখানে কনসোলে একটি প্রদর্শন রয়েছে। আমি এটি পরীক্ষা করে দেখছি যে $x
এটি বৈশ্বিক সুযোগে সংজ্ঞায়িত করা হয়নি, এর বিষয়বস্তুগুলি প্রদর্শন করে ScopeTest.ps1
এবং তারপর এটি চালান এবং শেষ পর্যন্ত আমি $x
আবার সংজ্ঞায়িত কিনা তা পরীক্ষা করে দেখি । যেমনটি প্রত্যাশিত, $x
কেবল স্ক্রিপ্টের আওতায় তৈরি করা হয় এবং স্ক্রিপ্টটি সমাপ্ত হওয়ার পরে বৈশ্বিক পরিবেশে স্থির থাকে না।
আইএসইতে, স্ক্রিপ্টটি কনসোল উইন্ডো ব্যবহার করে কল করা হলে এটি কাজ করবে বলে মনে হচ্ছে।
তবে, যদি আমি আসলে "স্ক্রিপ্ট রান করুন" বাটন বা এফ 5 ব্যবহার করি তবে স্ক্রিপ্টের মধ্যে ভেরিয়েবলগুলি সম্পূর্ণ হওয়ার পরে এটি অবিরত থাকবে।
এটি স্ক্রিপ্টগুলি লিখন এবং সমস্যা নিবারণটিকে কিছুটা জটিল করে তুলতে পারে, যদি স্ক্রিপ্টটি ধরে নেয় যে এটি একটি পরিষ্কার পরিবেশ থেকে শুরু হবে (যেমন: স্ক্রিপ্টের মধ্যে যে কোনও ভেরিয়েবল সেট থাকা উচিত নয়)। আইএসই কেন এভাবে আচরণ করে?
এই প্রশ্নের উত্তরটি "ডট-সোর্সিং" উল্লেখ করে কিছুটা সামান্য বিষয়টিকে স্পর্শ করে, তবে আমি এখানে আরও বিশদ ব্যাখ্যা পাব বলে আশা করছি। এছাড়াও, যদি স্ক্রিপ্টটি আইসইতে কনসোলের চেয়ে আলাদাভাবে চালিত হয় সে সম্পর্কে ডকুমেন্টেশন উপস্থিত থাকে, তবে একটি রেফারেন্সও খুব সুন্দর হবে।