PowerShell میں خودکار متغیرات کیا ہیں؟

Powershell My Khwdkar Mtghyrat Kya Y



پاور شیل کی ' خودکار متغیرات سسٹم مینجمنٹ، آٹومیشن، اور اسکرپٹنگ سرگرمیوں کے لیے ضروری ہیں۔ یہ متغیرات PowerShell رن ٹائم کے ذریعہ بلٹ ان ہوتے ہیں اور اسکرپٹ یا کمانڈ کے نفاذ کے دوران مخصوص معلومات کو ذخیرہ کرنے اور حوالہ دینے کے لیے پلیس ہولڈرز کے طور پر کام کرتے ہیں۔ ان خودکار متغیرات کو مؤثر طریقے سے سمجھنا اور استعمال کرنا PowerShell اسکرپٹس کی کارکردگی اور فعالیت کو بہت زیادہ بڑھا سکتا ہے۔

اس مضمون کا مقصد PowerShell میں 'خودکار متغیرات' کے تصور، ان کی اہمیت، اور مختلف منظرناموں میں ان سے کیسے فائدہ اٹھایا جا سکتا ہے۔







PowerShell میں آٹومیٹک ویری ایبلز کیا ہیں؟

شروع کرنے کے لیے، آئیے 'کی تعریف پر غور کریں خودکار متغیرات ' یہ متغیرات پہلے سے طے شدہ ہیں اور اسکرپٹ پر عمل درآمد کے دوران PowerShell کے ذریعہ خود بخود بنائے جاتے ہیں۔ یہ مختلف مقاصد کو پورا کرتے ہیں، بشمول سسٹم کے بارے میں معلومات فراہم کرنا، کمانڈ لائن دلائل، اسکرپٹ سے متعلق تفصیلات، اور بہت کچھ۔



پاور شیل کئی 'خودکار متغیرات' پیش کرتا ہے اور ان میں سے ہر ایک اسکرپٹ پر عمل درآمد میں ایک الگ مقصد فراہم کرتا ہے۔ یہ متغیرات درج ذیل ہیں:



1. $PSVersionTable

PowerShell میں بنیادی خودکار متغیرات میں سے ایک ہے ' $PSVersionTable ' یہ متغیر اسکرپٹ ڈویلپرز کو پاور شیل کے استعمال ہونے والے ورژن کا پتہ لگانے کی اجازت دیتا ہے، جو کچھ خصوصیات اور افعال کی مطابقت اور دستیابی پر غور کرتے وقت اہم ہو سکتا ہے۔





مندرجہ ذیل خصوصیات اس متغیر کے ساتھ منسلک ہیں:

پی ایس ورژن: پاور شیل ورژن نمبر لوٹاتا ہے۔



PSE ایڈیشن: PowerShell 4 اور اس سے پہلے کے لیے، نیز پاور شیل 5.1 مکمل خصوصیات والے ونڈوز ورژنز کے لیے، اس پراپرٹی کی قدر 'ڈیسک ٹاپ' ہے۔ اس خصوصیت میں پاور شیل 6 اور اس کے بعد کے لیے کور کی قدر ہے، نیز ونڈوز نینو سرور یا ونڈوز IoT جیسے کم فٹ پرنٹ ایڈیشنز کے لیے Windows PowerShell 5.1۔

GitCommitId: سورس فائلوں کی GitHub کمٹ آئی ڈی بازیافت کرتا ہے۔

تم: کمپیوٹر سسٹم کے بارے میں معلومات کو لاگ کرتا ہے جسے پاور شیل استعمال کر رہا ہے۔

پلیٹ فارم: آپریٹنگ سسٹم کا معاون پلیٹ فارم لوٹاتا ہے۔ لینکس اور میک او ایس پر یونکس کی قدر ہے۔ $IsMacOs اور $IsLinux چیک کریں۔

PSC مطابقت پذیر ورژن: پاور شیل ورژن جو موجودہ ورژن کے ساتھ مطابقت رکھتے ہیں واپس کر دیے جاتے ہیں۔

PSRemotingProtocolVersion: PowerShell ریموٹ مینجمنٹ پروٹوکول کا ورژن نمبر لوٹاتا ہے۔

سیریلائزیشن ورژن: سیریلائزیشن کے طریقہ کار کا ورژن لوٹاتا ہے۔

WSManStackVersion: WS-Management stack کا ورژن نمبر لوٹاتا ہے۔

$ پی ایس ورژن ٹیبل

2. $Args

PowerShell میں ایک اور ضروری خودکار متغیر ہے ' $Args ”، جس میں اسکرپٹ یا فنکشن کو بھیجے گئے کمانڈ لائن آرگیومنٹس کی ایک صف ہوتی ہے۔ یہ متغیر ڈویلپرز کو ان کے اسکرپٹس کے اندر متحرک طور پر فراہم کردہ دلائل پر کارروائی اور ہیرا پھیری کرنے کا اختیار دیتا ہے۔

کسی فنکشن کی وضاحت کرتے وقت، آپ پیرامیٹرز کا اعلان کرنے کے لیے یا تو 'param' کلیدی لفظ استعمال کر سکتے ہیں یا آپ فنکشن کے نام کے بعد قوسین میں پیرامیٹرز کی کوما سے الگ کردہ فہرست شامل کر سکتے ہیں۔ ایونٹ ایکشن کا '$Args' متغیر ایسی اشیاء کو اسٹور کرتا ہے جو ہینڈل کیے جانے والے ایونٹ کے ایونٹ کے پیرامیٹرز کے لیے پلیس ہولڈرز کے طور پر کام کرتے ہیں:

ہر ایک کے لئے ( $arg میں $Args ) {
تحریری میزبان $arg
}

3. $MyInvocation

' $MyInvocation متغیر اسکرپٹ یا طریقہ کار کے بارے میں اہم پس منظر کا ڈیٹا دیتا ہے جو اس وقت چل رہا ہے۔ یہ خصوصیات پیش کرتا ہے جیسے اسکرپٹ کا نام، اسکرپٹ لائن نمبر، اور آیا اسکرپٹ کو انٹرایکٹو چلایا جا رہا ہے یا غیر انٹرایکٹو۔ یہ خصوصیات اسکرپٹ ڈویلپرز کو برانچنگ منطق کو نافذ کرنے، غلطی سے نمٹنے کے طریقہ کار کی وضاحت کرنے، یا بامعنی لاگنگ اور رپورٹنگ بنانے میں مدد کرتی ہیں:

$ مائی انوکیشن

4. $Error

ایک غیر معروف خودکار متغیر ' $Error ”، کسی بھی خامی پیغامات یا استثناء کو مؤثر طریقے سے پکڑتا ہے جو اسکرپٹ پر عمل درآمد کے دوران ہوتا ہے۔ '$Error' تک مخصوص خامی کی تفصیلات حاصل کرنے کے لیے رسائی حاصل کی جا سکتی ہے جیسے استثنائی پیغامات، اسٹیک ٹریسز، یا ایرر کوڈز، تفصیلی تجزیہ اور ڈیبگنگ کو فعال کرتے ہوئے۔

سب سے حالیہ خرابی کی نمائندگی صف میں پہلی ایرر آبجیکٹ سے ہوتی ہے۔ $Error[0] ' آپ غلطیوں کو '$Error' صف میں شامل ہونے سے روکنے کے لیے 'نظرانداز کریں' کی قدر کے ساتھ ErrorAction کامن آپشن استعمال کر سکتے ہیں۔

فرض کریں کہ ہم نے ایک درست کمانڈ ٹائپ کیا ہے:

آئی پی [ onfig

اب، اگر ہم '$Error' cmdlet درج کرتے ہیں:

$ خرابی

5. $PSCmdlet

پاور شیل ماڈیولز کے ساتھ کام کرتے وقت، خودکار متغیر ' $PSCmdlet 'عمل میں آتا ہے۔ یہ متغیر cmdlet یا فنکشن کی درخواست کی موجودہ مثال تک رسائی فراہم کرتا ہے، اس کی خصوصیات اور طریقوں کے ساتھ براہ راست تعامل کی سہولت فراہم کرتا ہے۔

'$PSCmdlet' کا استعمال کرتے ہوئے، اعلی درجے کی اسکرپٹ ڈویلپرز بلٹ ان فنکشنلٹیز کو بڑھا یا تبدیل کرکے ماڈیولز کے رویے کو ٹھیک اور بہتر بنا سکتے ہیں۔ آپ استعمال کے معیار کے جواب میں اپنے cmdlet یا فنکشن کوڈ میں آبجیکٹ کی خصوصیات اور طریقے استعمال کر سکتے ہیں:

فنکشن typeof-psCmdlet {
[ cmdlet بائنڈنگ ( ) ] پرم ( )
بازگشت '' کی قسم $psCmdlet ہے $($psCmdlet.GetType() .پورا نام)'
}

typeof-psCmdlet

متذکرہ بالا متغیرات کے علاوہ، PowerShell میں خودکار متغیرات شامل ہیں جیسے $HOME، $PROFILE، $PWD، اور بہت کچھ، جو مختلف مقاصد کو پورا کرتا ہے، جیسے کہ ان پٹ تک رسائی، غلطیوں سے باخبر رہنا، ماحول کی معلومات کی بازیافت، پیرامیٹرز کا انتظام، اور بہت کچھ۔ یہ متغیرات ذیل میں درج ہیں:

خودکار متغیرات تفصیل
$$ پاور شیل سیشن کو موصول ہونے والی پچھلی لائن میں آخری ٹوکن رکھتا ہے۔
آخری کمانڈ کے عمل درآمد کی حیثیت کو اسٹور کرتا ہے۔
$^ سیشن کو موصول ہونے والی آخری لائن کا پہلا ٹوکن شامل ہے۔
$_ پائپ لائن میں موجودہ آبجیکٹ کی نمائندگی کرتا ہے۔
$ConsoleFileName سیشن میں حال ہی میں استعمال ہونے والی کنسول فائل (.psc1) کے راستے پر مشتمل ہے۔
$EnabledExperimentalFeatures فعال تجرباتی خصوصیات کی فہرست پر مشتمل ہے۔
$ایونٹ ایک 'PSEventArgs' آبجیکٹ پر مشتمل ہے جو پروسیس ہونے والے ایونٹ کی نمائندگی کرتا ہے۔
$EventArgs کارروائی کی جا رہی ایونٹ کے پہلے ایونٹ کی دلیل پر مشتمل ہے۔
$EventSubscriber پروسیس ہونے والے ایونٹ کے ایونٹ کے سبسکرائبر کی نمائندگی کرتا ہے۔
$ExecutionContext PowerShell ہوسٹ کے عملدرآمد کے سیاق و سباق کی نمائندگی کرتا ہے۔
$false بولین ویلیو 'فالس' کی نمائندگی کرتا ہے۔
$foreach 'ہر ایک کے لیے' لوپ کا شمار کنندہ پر مشتمل ہے۔
$HOME صارف کی ہوم ڈائرکٹری کے مکمل راستے پر مشتمل ہے۔
$Host پاور شیل کے لیے موجودہ میزبان ایپلیکیشن کی نمائندگی کرتا ہے۔
$input فنکشن یا اسکرپٹ کو بھیجے گئے تمام ان پٹ کے لیے ایک شمار کنندہ کے طور پر کام کرتا ہے۔
$IsCoreCLR یہ بتاتا ہے کہ آیا سیشن .NET کور رن ٹائم (CoreCLR) پر چل رہا ہے۔
$IsLinux اشارہ کرتا ہے کہ آیا سیشن لینکس آپریٹنگ سسٹم پر چل رہا ہے۔
$IsMacOS اشارہ کرتا ہے کہ آیا سیشن MacOS آپریٹنگ سسٹم پر چل رہا ہے۔
$IsWindows اس بات کی نشاندہی کرتا ہے کہ آیا سیشن ونڈوز آپریٹنگ سسٹم پر چل رہا ہے۔
$LASTEXITCODE آخری مقامی پروگرام یا پاور شیل اسکرپٹ کے ایگزٹ کوڈ کو اسٹور کرتا ہے۔
$Matches '-match' اور '-notmatch' آپریٹرز کے مماثل سٹرنگز پر مشتمل ہے۔
$NestedPromptLevel نیسٹڈ کمانڈز یا ڈیبگنگ منظرناموں میں موجودہ پرامپٹ لیول کو ٹریک کرتا ہے۔
$null ایک کالعدم یا خالی قدر کی نمائندگی کرتا ہے۔
$PID پاور شیل سیشن کا پروسیس شناخت کنندہ (PID) پر مشتمل ہے۔
$PROFILE موجودہ صارف اور میزبان ایپلیکیشن کے لیے PowerShell پروفائل کا مکمل راستہ شامل ہے۔
$PSBoundParameters اسکرپٹ یا فنکشن اور ان کی اقدار کو پاس کیے گئے پیرامیٹرز کی لغت رکھتا ہے۔
$PSCommandPath اسکرپٹ کے مکمل راستے اور فائل نام پر مشتمل ہے۔
$PSCulture موجودہ پاور شیل رن اسپیس کی ثقافت کی عکاسی کرتا ہے۔
$PSEdition پاور شیل ایڈیشن کی معلومات پر مشتمل ہے۔
$PSHOME پاور شیل انسٹالیشن ڈائرکٹری کے مکمل راستے پر مشتمل ہے۔
$PSitem $_ کی طرح، پائپ لائن میں موجودہ آبجیکٹ کی نمائندگی کرتا ہے۔
$PSScriptRoot عمل کرنے والی اسکرپٹ کی پیرنٹ ڈائرکٹری کے مکمل راستے پر مشتمل ہے۔
$PSSenderInfo پی ایس سیشن شروع کرنے والے صارف کے بارے میں معلومات پر مشتمل ہے۔
$PSUICulture آپریٹنگ سسٹم میں کنفیگر کردہ یوزر انٹرفیس (UI) کلچر کی عکاسی کرتا ہے۔
$PWD پاور شیل سیشن کی موجودہ ورکنگ ڈائرکٹری کی نمائندگی کرتا ہے۔
$Sender اس آبجیکٹ پر مشتمل ہے جس نے ایک ایونٹ تیار کیا۔
$ShellId موجودہ شیل کے شناخت کنندہ پر مشتمل ہے۔
$StackTrace تازہ ترین خرابی کے لیے اسٹیک ٹریس کو اسٹور کرتا ہے۔
$switch 'سوئچ' بیان کے شمار کنندہ پر مشتمل ہے۔
$یہ اسکرپٹ بلاکس میں کلاس کی مثال سے مراد ہے جو کلاسوں میں توسیع کرتی ہے۔
$سچ بولین قدر 'True' کی نمائندگی کرتا ہے۔

PowerShell میں تمام 'خودکار متغیرات' درج ذیل کمانڈ کو چلا کر تلاش کیے جا سکتے ہیں:

گیٹ ویری ایبل

نتیجہ

' خودکار متغیرات پاور شیل اسکرپٹنگ کی ریڑھ کی ہڈی کی حیثیت رکھتی ہے، جس سے ڈویلپرز کو سسٹم، کمانڈ لائن آرگومینٹس، اسکرپٹ پر عمل درآمد کے سیاق و سباق اور مزید کے بارے میں معلومات حاصل کرنے کی اجازت ملتی ہے۔ '$PSVersionTable'، '$Args'، '$MyInvocation'، '$Error'، اور دیگر جیسے خودکار متغیرات کا استعمال کرتے ہوئے، PowerShell اسکرپٹ کے ڈویلپرز منظم نظام کے انتظامی طریقوں کو تشکیل دے سکتے ہیں۔