پاور شیل کے ساتھ کام کرتے وقت، پہلی چیز جس کا ہم سامنا کرتے ہیں وہ کمانڈز (Cmdlets) ہیں۔
کمانڈ کال اس طرح نظر آتی ہے:
Verb-Noun -Parameter1 ValueType1 -Parameter2 ValueType2[]
مدد
Get-Help کمانڈ کا استعمال کرتے ہوئے PowerShell میں مدد تک رسائی حاصل کی جاتی ہے۔ پیرامیٹرز میں سے ایک کی وضاحت کی جا سکتی ہے: مثال، تفصیلی، مکمل، آن لائن، شو ونڈو۔
Get-Help Get-Service-full Get-Service کمانڈ کے آپریشن کی مکمل تفصیل واپس کر دے گا۔
Get-Help Get-S* Get-S* سے شروع ہونے والے تمام دستیاب کمانڈز اور فنکشنز کو دکھائے گا۔
مائیکرو سافٹ کی سرکاری ویب سائٹ پر بھی تفصیلی دستاویزات موجود ہیں۔
Get-Evenlog کمانڈ کے لیے یہاں ایک مثال مدد ہے۔
اگر پیرامیٹرز مربع بریکٹ [] میں بند ہیں، تو وہ اختیاری ہیں۔
یعنی، اس مثال میں، خود لاگ کا نام، اور پیرامیٹر کا نام درکار ہے۔
اگر آپ EntryType پیرامیٹر پر نظر ڈالتے ہیں، تو آپ ان اقدار کو دیکھ سکتے ہیں جو گھوبگھرالی بریکٹ میں بند ہیں۔ اس پیرامیٹر کے لیے، ہم صرف گھوبگھرالی منحنی خطوط وحدانی میں پہلے سے طے شدہ اقدار استعمال کر سکتے ہیں۔
اس بارے میں معلومات کہ آیا پیرامیٹر کی ضرورت ہے، مطلوبہ فیلڈ میں نیچے دی گئی تفصیل میں دیکھی جا سکتی ہے۔ اوپر کی مثال میں، آفٹر انتساب اختیاری ہے کیونکہ Required کو غلط پر سیٹ کیا گیا ہے۔ اگلا، ہم اس کے مخالف پوزیشن فیلڈ دیکھتے ہیں جو کہتا ہے Named۔ اس کا مطلب ہے کہ آپ پیرامیٹر کو صرف نام سے ہی حوالہ دے سکتے ہیں، یعنی:
Get-EventLog -LogName Application -After 2020.04.26
چونکہ LogName پیرامیٹر میں Named کے بجائے نمبر 0 تھا، اس کا مطلب ہے کہ ہم نام کے بغیر پیرامیٹر کا حوالہ دے سکتے ہیں، لیکن اسے مطلوبہ ترتیب میں بتا کر:
Get-EventLog Application -After 2020.04.26
آئیے اس ترتیب کو مان لیتے ہیں:
Get-EventLog -Newest 5 Application
عرف
تاکہ ہم PowerShell میں کنسول سے حسب معمول کمانڈز استعمال کر سکیں، وہاں عرفی نام (عرف) موجود ہیں۔
سیٹ لوکیشن کمانڈ کے لیے ایک مثال عرف سی ڈی ہے۔
یعنی حکم کو پکارنے کے بجائے
Set-Location “D:”
ہم استعمال کر سکتے ہیں
cd “D:”
تاریخ
کمانڈ کالز کی تاریخ دیکھنے کے لیے، آپ گیٹ ہسٹری استعمال کر سکتے ہیں۔
تاریخ سے کمانڈ پر عمل کریں Invoke-History 1; ہسٹری 2 کو طلب کریں۔
ماضی مٹا دو
پائپ لائن
پاور شیل میں ایک پائپ لائن اس وقت ہوتی ہے جب پہلے فنکشن کا نتیجہ دوسرے کو دیا جاتا ہے۔ یہاں پائپ لائن کا استعمال کرتے ہوئے ایک مثال ہے:
Get-Verb | Measure-Object
لیکن پائپ لائن کو بہتر طور پر سمجھنے کے لیے، آئیے ایک آسان مثال لیتے ہیں۔ ایک ٹیم ملی
Get-Verb "get"
اگر آپ Get-Help کو Get-Verb -Full help کہتے ہیں، تو ہم دیکھیں گے کہ Verb کا پیرامیٹر پائپ لائن ان پٹ لیتا ہے اور ByValue بریکٹ میں لکھا جاتا ہے۔
اس کا مطلب ہے کہ ہم Get-Verb "get" کو "get" | پر دوبارہ لکھ سکتے ہیں۔ GetVerb.
یعنی، پہلے اظہار کا نتیجہ ایک سٹرنگ ہے اور اسے قدر کے لحاظ سے پائپ لائن ان پٹ کے ذریعے Get-Verb کمانڈ کے Verb پیرامیٹر میں منتقل کیا جاتا ہے۔
نیز پائپ لائن ان پٹ ByPropertyName ہوسکتا ہے۔ اس صورت میں، ہم ایک ایسی چیز کو پاس کریں گے جس کی ایک خاصیت ہے جس کا نام Verb ہے۔
متغیرات
متغیرات کو مضبوطی سے ٹائپ نہیں کیا جاتا ہے اور ان کی وضاحت $ کے ساتھ ہوتی ہے۔
$example = 4
علامت > کا مطلب ڈیٹا ڈالنا ہے۔
مثال کے طور پر، $example > File.txt
اس اظہار کے ساتھ، ہم $example متغیر سے ڈیٹا کو فائل میں ڈالیں گے۔
Set-Content -Value $example -Path File.txt کی طرح
گرفتار
صف شروع کرنا:
$ArrayExample = @(“First”, “Second”)
خالی صف شروع کرنا:
$ArrayExample = @()
انڈیکس کے لحاظ سے قدر حاصل کرنا:
$ArrayExample[0]
پوری صف حاصل کریں:
$ArrayExample
ایک عنصر شامل کرنا:
$ArrayExample += “Third”
$ArrayExample += @(“Fourth”, “Fifth”)
چھانٹ
$ArrayExample | Sort
$ArrayExample | Sort -Descending
لیکن صف خود اس ترتیب کے ساتھ غیر تبدیل شدہ رہتی ہے۔ اور اگر ہم چاہتے ہیں کہ صف میں ڈیٹا کو ترتیب دیا جائے، تو ہمیں ترتیب شدہ اقدار کو تفویض کرنے کی ضرورت ہے:
$ArrayExample = $ArrayExample | Sort
پاور شیل میں کسی سرنی سے عنصر کو ہٹانے کا کوئی طریقہ نہیں ہے، لیکن آپ اسے اس طرح کر سکتے ہیں:
$ArrayExample = $ArrayExample | where { $_ -ne “First” }
$ArrayExample = $ArrayExample | where { $_ -ne $ArrayExample[0] }
ایک صف کو ہٹانا:
$ArrayExample = $null
تکمے
لوپ نحو:
for($i = 0; $i -lt 5; $i++){}
$i = 0
while($i -lt 5){}
$i = 0
do{} while($i -lt 5)
$i = 0
do{} until($i -lt 5)
ForEach($item in $items){}
بریک لوپ سے باہر نکلیں۔
جاری عنصر کو چھوڑ دیں۔
مشروط بیانات
if () {} elseif () {} else
switch($someIntValue){
1 { “Option 1” }
2 { “Option 2” }
default { “Not set” }
}
فنکشن
فنکشن کی تعریف:
function Example () {
echo &args
}
فنکشن لانچ:
Example “First argument” “Second argument”
فنکشن میں دلائل کی وضاحت:
function Example () {
param($first, $second)
}
function Example ($first, $second) {}
فنکشن لانچ:
Example -first “First argument” -second “Second argument”
رعایت
try{
} catch [System.Net.WebException],[System.IO.IOException]{
} catch {
} finally{
}
ماخذ: www.habr.com