د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

په تاریخي توګه، په یونیکس سیسټمونو کې د کمانډ لاین اسانتیاوې د وینډوز په پرتله ښه وده شوې، مګر د نوي حل په راتګ سره، وضعیت بدل شوی.

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

PowerShell په تفسیر شوي، څو اړخیزه ژبه کې سکریپټ کیدی شي چې د کلاسیک طرزالعمل، اعتراض پر بنسټ، او حتی فعال پروګرام کولو عناصر لري: مشروط برانچینګ، لوپس، متغیرات، سرې، د هش میزونه، ټولګي، د خطا اداره کول، او همدارنګه دندې، cmdlets، او پایپ لاینونه. مخکینی مقاله په چاپیریال کې د کار کولو اساساتو ته وقف شوی و، او اوس موږ خپلو لوستونکو ته د پروګرام کونکو لپاره یو کوچنی حواله کتاب وړاندې کوو.

فهرست:

تبصرې
متغیرات او د هغوی ډولونه
د سیسټم تغیرات
سکوپونه
د چاپیریال تغیرات (چاپیریال)
د ریاضي او پرتله کولو چلونکي
د سپارلو چلونکي
منطقي چلونکي
مشروط کود
سایکلونه
سرې
د هش میزونه
دندې
د پروسس کولو تېروتنه

تاسو کولی شئ په هر متن ایډیټر کې کوډ ولیکئ یا د مدغم شوي پراختیا چاپیریال په کارولو سره - ترټولو اسانه لار د وینډوز پاور شیل ISE اخیستل دي چې د مایکروسافټ سرور عملیاتي سیسټمونو سره راځي. دا یوازې د کافي پیچلي سکریپټونو لپاره اړین دی: د کمانډونو لنډ سیټونه په متقابل عمل پلي کول اسانه دي.

تبصرې

د تبصرو کارول د مناسب انډیټیشن او سپین ځای سره د ښه پروګرام کولو سټایل برخه ګڼل کیږي:

# Для строчных комментариев используется символ решетки — содержимое строки интерпретатор не обрабатывает.

<# 

       Так обозначаются начало и конец блочного комментария. 
       Заключенный между ними текст интерпретатор игнорирует.

#>

متغیرات او د هغوی ډولونه

په PowerShell کې تغیرات د شیانو نومول شوي. د دوی په نومونو کې د انډر سکور کرکټر، په بیله بیا لیکونه او شمیرې شاملې دي. $ سمبول تل د نوم څخه مخکې کارول کیږي، او د متغیر اعلانولو لپاره، دا کافي ده چې ژباړونکي ته یو معتبر نوم ورکړئ:

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د یو متغیر پیل کولو لپاره (دې ته ارزښت ورکړئ)، د تفویض آپریټر (سمبول =) کارول کیږي:

$test = 100

تاسو کولی شئ یو متغیر د نوم یا ارزښت څخه مخکې په مربع قوسونو (ډول کاسټینګ آپریټر) کې مشخص کولو سره اعلان کړئ:

[int]$test = 100

$test = [int]100

دا مهمه ده چې پوه شئ چې په PowerShell کې متغیرات د ملکیتونو او میتودونو سره بشپړ شوي توکي (ټولګي) دي چې ډولونه یې د NET کور کې د هغو پر بنسټ دي. موږ اصلي لیست کوو:

ډول (.NET ټولګي)

شرح

د کوډ مثال

[سټرینګ] سیسټم.سټرینګ

د یونیکوډ تار 

$test = "ازموینه"
$test = 'ازموینه'

[چار] سیسټم.چار

یونیکوډ کرکټر (16 بټونه)

[چار]$ټیسټ = 'c' [بول] سیسټم.بولین

د بولین ډول (بولین ریښتیا یا غلط)

[بول] $ ازموینه = $ ریښتیا [انټ] سیسټم. انټ 32

دوه ديرش بټ انټيجر (32 بټ)

[int]$test = 123456789 [اوږد] سیسټم.Int64

څلور څلویښت بټ عدد (۶۴ بټ)

[اوږد]$ټیسټ = 12345678910 [واحد] سیسټم.واحد

د تیریدلو نقطه شمیره 32 بټ اوږد

[واحد]$ټیسټ = ۱۲۳۴۵.۶۷۸۹ [دوه ګونی] سیسټم.دوه ګونی

د اوږدوالی 64 بټ (8 بایټ) د تیرولو نقطه شمیره

[دوه ګونی] $ ازموینه = 123456789.101112 [لسیزه] سیسټم.لسیزه

د 128-bit د فلوټینګ پوائنټ شمیره (د d سره پای ته اړتیا لري)

[لسیزه] $ ازموینه = 12345.6789d [د نیټې وخت] سیسټم.د نیټې وخت

نیټه او وخت 

$ټیسټ = د ترلاسه کولو نیټه

[صف] سیسټم.څیز[]

یو صف چې د عنصر شاخص په 0 پیل کیږي

$test_array = 1, 2, "ازموینه", 3, 4

[هېشټېبل] سیسټم.کلیکشنونه.هېشټېبل

د هش جدولونه د نومول شوي کیلي سره ملګري صفونه دي، د اصولو سره سم جوړ شوي: @{key = "value"}

$test_hashtable = @{one="one"; دوه = دوه"؛ درې = درې"}

پاور شیل د ضمني ډول تبادلې ملاتړ کوي ، سربیره پردې ، د متغیر ډول په الوتنه کې بدل کیدی شي (د مثال په توګه ، د دندې آپریټر په کارولو سره) ، که چیرې دا په جبري ډول نه وي مشخص شوی - پدې حالت کې ، ژباړونکی به غلطي ورکړي. تاسو کولی شئ د GetType() میتود په زنګ وهلو سره د تیر مثال څخه د متغیر ډول وټاکئ:

$test.GetType().FullName

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د متغیرونو د مینځلو لپاره یو شمیر cmdlets شتون لري. د دوی لیست په مناسب شکل کې د کمانډ په کارولو سره ښودل کیږي:

Get-Command -Noun Variable | ft -Property Name, Definition -AutoSize -Wrap

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د اعلان شوي متغیرونو او د دوی ارزښتونو لیدلو لپاره، تاسو کولی شئ یو ځانګړی cmdlet وکاروئ:

Get-Variable | more

دا طریقه خورا پیچلې ښکاري، دا خورا اسانه ده چې د متغیرونو سره د آپریټرونو له لارې کار وکړو یا د دوی ملکیتونو او میتودونو ته مستقیم لاسرسی ومومئ. په هرصورت، cmdlets د شتون حق لري ځکه چې دوی تاسو ته اجازه درکوي چې ځینې اضافي پیرامیټونه تنظیم کړئ. دا مهمه ده چې پوه شئ چې د کاروونکي تغیرات یوازې په اوسني ناستې کې تعریف شوي. کله چې کنسول وتړل شي یا سکریپټ پای ته ورسیږي، دوی حذف کیږي.

د سیسټم تغیرات

د کارونکي لخوا اعلان شوي سربیره ، جوړ شوي (سیسټم) تغیرات شتون لري چې د اوسني ناستې پای ته رسیدو وروسته نه حذف کیږي. دوی په دوه ډوله ویشل شوي، پداسې حال کې چې د PowerShell حالت ډیټا په اتوماتیک متغیرونو کې زیرمه شوي چې نشي کولی پخپله خپل سري ارزښتونه وټاکي. پدې کې شامل دي، د بیلګې په توګه، $PWD:

$PWD.Path

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د کاروونکي غوره توبونو ذخیره کولو لپاره د غوره توب تغیراتو ته اړتیا ده، کوم چې ارزښتونه یې بدلیدلی شي. د مثال په توګه، د $ErrorActionPreference په کارولو سره، د غیر وژونکي تېروتنې پیښې ته د کمانډ ترجمان عکس العمل ټاکل شوی.

اعلان شوي متغیرونو ته د لاسرسي لپاره د آپریټرونو او cmdlets سربیره ، یو متغیر شتون لري: pseudo-accumulator. تاسو کولی شئ د دې سره د نورو ډرائیو سره په ورته والي سره کار وکړئ ، او پدې حالت کې متغیرونه د فایل سیسټم توکي سره ورته دي:

Get-ChildItem Variable: | more

او یا

ls Variable: | more

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

سکوپونه

په PowerShell کې د متغیرونو لپاره، د سکوپ (Scope) مفهوم شتون لري. د نړیوال سکوپ (نړیوال) عمل په ټوله اوسنۍ ناسته کې پلي کیږي - پدې کې د مثال په توګه ، د سیسټم متغیرونه شامل دي. محلي (محلي) متغیرات یوازې په هغه ساحه کې شتون لري چیرې چې دوی تعریف شوي: د فنکشن دننه ووایه. د سکریپټ (سکرپټ) د ساحې مفهوم هم شتون لري، مګر د سکریپټ کمانډونو لپاره، دا په اصل کې محلي دی. د ډیفالټ په توګه، کله چې متغیرات اعلان کړئ، دوی ته سیمه ایز ساحه ورکول کیږي، او د دې بدلولو لپاره، تاسو یو ځانګړي جوړښت ته اړتیا لرئ لکه: $Global: variable = value.

د مثال په توګه، دا ډول:

$Global:test = 100

د چاپیریال تغیرات (چاپیریال)

بل pseudo-drive، Env:، د PowerShell څخه شتون لري او د چاپیریال تغیراتو ته د لاسرسي لپاره کارول کیدی شي. کله چې شیل پیل شي، دوی د اصلي پروسې څخه کاپي شوي (دا د هغه برنامه څخه چې اوسنۍ ناسته یې پیل کړې) او معمولا د دوی لومړني ارزښتونه د کنټرول پینل کې ارزښتونو ته ورته وي. د چاپیریال متغیرونو لیدلو لپاره، د Get-ChildItem cmdlet یا د هغې عرفونه (عرفونه): ls او dir وکاروئ.

dir Env:

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

دا متغیرات د بایټونو لړۍ دي (یا کرکټرونه ، که تاسو یې غواړئ) ، چې تشریح یې یوازې د دوی کارولو برنامې پورې اړه لري. *-Variable cmdlets د چاپیریال متغیرونو سره کار نه کوي. دوی ته د لاسرسي لپاره ، تاسو باید د ډرایو مختګ وکاروئ:

$env:TEST = "Hello, World!"

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د ریاضي او پرتله کولو چلونکي

PowerShell لاندې ریاضي چلونکي چمتو کوي: + (اضافه)، - (فرض)، * (ضرب)، / (ویشل)، او٪ (موډولو یا ماډلو). د ریاضیاتي بیان پایله د عملیاتو عمومي منل شوي ترتیب سره سم له کیڼ څخه ښیې ته ارزول کیږي ، او قوسونه د بیان برخې ګروپ کولو لپاره کارول کیږي. د آپریټرونو تر مینځ ځایونه له پامه غورځول شوي ، دوی یوازې د لوستلو اسانه کولو لپاره کارول کیږي. + آپریټر هم یوځای کوي، او * آپریټر تارونه تکراروي. که تاسو هڅه وکړئ په تار کې شمیره اضافه کړئ، دا به په تار کې بدل شي. برسېره پردې، د پاور شیل ژبه د پرتله کولو ډیری چلونکي لري چې د دوو ارزښتونو تر مینځ میچ ګوري او د بولین ریښتیا یا غلط بیرته راګرځوي:

چلونکی

شرح

د کوډ مثال

- eq

مساوي / مساوي (په نورو ژبو کې = یا == ته ورته)

$ټیسټ = 100
$ټیسټ -eq 123 

-نه

مساوي نه وي / مساوي نه وي (د <> یا!= سره ورته وي)

$ټیسټ = 100
$test -ne 123   

-gt

له / ډیر څخه لوی (انالوګ>)

$ټیسټ = 100
$test -gt 123

له څخه لوی یا مساوي / له څخه لوی یا مساوي (>= ته ورته)

$ټیسټ = 100
$test -ge 123

-lt

له کم / لږ ( ورته <)

$ټیسټ = 100
$test -lt 123  

-لی

له څخه لږ یا مساوي / لږ یا مساوي (د <= سره ورته)

$ټیسټ = 100
$ټیسټ -le 123

نور ورته آپریټرونه شتون لري چې تاسو ته اجازه درکوي، د بیلګې په توګه، د وائلډ کارډ پر بنسټ تارونه پرتله کړئ یا د نمونې سره سمون لپاره منظم بیانونه وکاروئ. موږ به یې په راتلونکو مقالو کې په تفصیل سره پوښښ کړو. سمبولونه <، > او = د پرتله کولو لپاره نه کارول کیږي ځکه چې دوی د نورو موخو لپاره کارول کیږي.

د سپارلو چلونکي

د ډیری عام = آپریټر سربیره، نور د دندې چلونکي هم شتون لري: +=، -=، *=، /= او %=. دوی د دندې دمخه ارزښت بدلوي. یونري آپریټرونه ++ او - چې د متغیر ارزښت لوړوي یا کموي، ورته چلند کوي - دوی د دندې آپریټرونو باندې هم پلي کیږي.

منطقي چلونکي

یوازې پرتله کول د پیچلو شرایطو تشریح کولو لپاره کافي ندي. تاسو کولی شئ د آپریټرونو په کارولو سره کوم منطقي څرګندونې ولیکئ: -and, -or, -xor, -not and! .. دوی د نورو پروګرامینګ ژبو په څیر کار کوي، پداسې حال کې چې تاسو کولی شئ د ارزونې ترتیب مشخص کولو لپاره قوس وکاروئ:

("Тест" -eq "Тест") -and (100 -eq 100)

-not (123 -gt 321) 

!(123 -gt 321)

مشروط کود

په PowerShell کې د څانګې چلونکي معیاري دي: IF(IF…ELSE, IF…ELSEIF…ELSE) او SWITCH. راځئ چې د مثالونو سره د دوی کارول وګورو:

[int]$test = 100
if ($test -eq 100) {
      Write-Host "test = 100"
}



[int]$test = 50
if ($test -eq 100) {
       Write-Host "test = 100"
}
else {
      Write-Host "test <> 100"
}



[int]$test = 10
if ($test -eq 100) {
      Write-Host "test = 100"
}
elseif ($test -gt 100) {
      Write-Host "test > 100"
}
else {
       Write-Host "test < 100"
}



[int]$test = 5
switch ($test) {
     0 {Write-Host "test = 0"}
     1 {Write-Host "test = 1"}
     2 {Write-Host "test = 2"}
     3 {Write-Host "test = 3"}
     4 {Write-Host "test = 4"}
     5 {Write-Host "test = 5"}
     default {Write-Host "test > 5 или значение не определено"}
}

سایکلونه

PowerShell د لوپ ډیری ډولونه لري: WHILE، DO WHILE، DO NTIL، FOR، او FOREACH.

د مخکینۍ شرط سره لوپ کار کوي که/تر هغه چې دا ریښتیا وي:

[int]$test = 0
while ($test -lt 10) {
      Write-Host $test
      $test = $test + 1
}

د پوسټ کنډیشن سره لوپونه به لږترلږه یو ځل وګرځي، ځکه چې حالت د تکرار وروسته چک کیږي. په ورته وخت کې، DO WHILE کار کوي پداسې حال کې چې حالت سم وي، او DO UNTI کار کوي پداسې حال کې چې دا غلط وي:

[int]$test = 0
do {
      Write-Host $test
      $test = $test + 1 
}
while ($test -lt 10)



[int]$test = 0
do {
      Write-Host $test
      $test = $test + 1 
}
until ($test -gt 9)

د FOR لوپ د تکرارونو شمیر دمخه پیژندل شوی:

for ([int]$test = 0; $test -lt 10; $test++) {
       Write-Host $test
}

په FOREACH لوپ کې، د سرې یا راټولولو عناصرو باندې تکرار کیږي (هیش جدول):

$test_collection = "item1", "item2", "item3"
foreach ($item in $test_collection)
{
        Write-Host $item
}

سرې

PowerShell متغیرونه نه یوازې یو واحد توکي (شمیره، تار، او نور) ذخیره کوي، بلکې ډیری یې هم. د دې ډول متغیرونو ترټولو ساده ډول سرې دي. یو سري کیدای شي څو عناصر ولري، یو عنصر، یا خالي وي، د بیلګې په توګه. هیڅ عناصر نلري. دا د @() آپریټر په کارولو سره اعلان شوی، کوم چې موږ به په راتلونکې مقاله کې ورته اړتیا ولرو - دا خورا مهم دی چې په یوه صف کې د نورو اریونو اضافه کولو لپاره (د څو اړخیزو صفونو رامینځته کول)، د استدلال په توګه افعالونو ته د صفونو لیږدول، او ورته دندې:

$test_array = @() #создаем пустой массив

کله چې یو سري پیل شي، د هغې ارزښتونه د کوما لخوا جلا شوي لیست شوي (ځانګړی آپریټر،):

$test_array = @(1, 2, 3, 4) # создаем массив из четырех элементов 

په ډیری قضیو کې، @() آپریټر پریښودل کیدی شي:

$test_array = 1, 2, 3, 4

په دې حالت کې، د یو عنصر لړۍ په لاندې ډول پیل کیږي

$test_array = , 1

د صف عناصرو ته د صفر پر بنسټ د عدد شاخص او د شاخص چلونکي (مربع بریکٹ) په کارولو سره لاسرسی کیږي:

$test_array[0] = 1

تاسو کولی شئ څو شاخصونه مشخص کړئ چې د کوما لخوا جلا شوي، په شمول. تکراري:

$test_array = "один", "два", "три", "четыре"
$test_array[0,1,2,3]
$test_array[1,1,3,3,0]

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

چلونکی .. (دوه نقطې - رینج آپریټر) د ټاکل شوي پورتنۍ او ښکته حدونو دننه د انټیجرونو لړۍ راګرځوي. د مثال په توګه، ایکسپریشن 1..4 د څلورو عناصرو @(1, 2, 3, 4) سرې راوباسي، او 8..5 بیان د @(8, 7, 6, 5) یو سري تولیدوي.

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د رینج آپریټر په کارولو سره، تاسو کولی شئ یو سري پیل کړئ ($test_array = 1..4) یا یوه ټوټه (سلائس) ترلاسه کړئ، د بیلګې په توګه. د یو صف څخه د عناصرو ترتیب د بل شاخصونو سره. په دې حالت کې، منفي شمیره -1 د صف وروستی عنصر څرګندوي، -2 - پای پای، او داسې نور.

$test_array = "один", "два", "три", "четыре"
$test_array[0..2]
$test_array[2..0]
$test_array[-1..0]
$test_array[-2..1]

په یاد ولرئ چې د انټیجر سرې ارزښتونه د ډیټا سرې د اعظمي شاخص ارزښت څخه لوی کیدی شي. په دې حالت کې، ټول ارزښتونه وروستي ته بیرته راستانه شوي:

$test_array[0..100]

که تاسو د یو واحد غیر موجود سري عنصر ته د لاسرسي هڅه وکړئ، $null بیرته راستانه کیږي.

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

په PowerShell کې، arrays د مختلف ډولونو عناصر لري یا په کلکه ټایپ کیدی شي:

$test_array = 1, 2, "тест", 3, 4
for ([int]$i = 0; $i -lt $test_array.count; $i++)
{
          Write-Host $test_array[$i]
}

چیرې چې د $test_array.count ملکیت د سري عناصرو شمیر دی.

د قوي ټایپ شوي صف جوړولو یوه بیلګه:

[int[]]$test_array = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

د هش میزونه

په PowerShell ژبه کې د متغیرونو یو بل بنسټیز ډول د هش میزونه دي، چې د ایسوسی ایټیو اری په نوم هم پیژندل کیږي. هشټبلونه د JSON شیانو ته ورته دي او د کلیدي ارزښت پراساس جوړ شوي. د عادي صفونو برعکس، د دوی عناصر د نوم شوي کیلي لخوا لاسرسی کیږي، کوم چې د اعتراض ملکیتونه دي (تاسو کولی شئ د شاخص آپریټر - مربع بریکٹ هم وکاروئ).

یو خالي هش میز د @ سمبول او آپریټر بریکٹ په کارولو سره اعلان شوی:

$test_hashtable = @{}

کله چې اعلان کول ، تاسو کولی شئ سمدلاسه کیلي رامینځته کړئ او دوی ته ارزښتونه وټاکئ:

$test_hashtable = @{one="один"; two="два"; three="три"; "some key"="some value"}

د هش میز ته د عنصر اضافه کولو لپاره، تاسو باید یو کیلي وټاکئ چې لاهم شتون نلري، یا د Add () میتود وکاروئ. که چیرې موجوده کیلي ته دنده ورکړل شي، نو ارزښت به یې بدل شي. د لرې کولو () میتود د هش میز څخه د عنصر لرې کولو لپاره کارول کیږي.

$test_hashtable."some key"
$test_hashtable["some key"]
$test_hashtable.Add("four", "четыре")
$test_hashtable.five = "пять"
$test_hashtable['five'] = "заменяем значение"
$test_hashtable.Remove("one")

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

د دې ډول متغیرونه افعال او cmdlets ته د دلیلونو په توګه لیږدول کیدی شي - په راتلونکې مقاله کې به موږ مطالعه کړو چې دا څنګه ترسره کیږي، او یو بل ورته ډول - PSCustomObject په پام کې ونیسئ.

دندې

PowerShell هر هغه څه لري چې تاسو یې د طرزالعمل پروګرام کولو لپاره اړتیا لرئ، په شمول د دندو. د دوی تشریح کولو لپاره، د فنکشن کلمه کارول کیږي، وروسته له دې چې تاسو اړتیا لرئ د فنکشن نوم او د آپریټر بریکٹ کې تړل شوي بدن مشخص کړئ. که تاسو اړتیا لرئ فنکشن ته دلیلونه واستوئ، تاسو کولی شئ دوی سمدلاسه په قوس کې د نوم وروسته مشخص کړئ.

function имя-функции (аргумент1, ..., аргументN) 
{ 
        тело-функции 
} 

فنکشن تل یوه پایله بیرته راوړي - دا د هغې د ټولو بیاناتو پایلو یوه لړۍ ده، که چیرې له یو څخه زیات وي. که چیرې یوازې یو بیان وي، د اړونده ډول یوازینۍ ارزښت بیرته راستانه کیږي. د بیرته ستنیدو $value ساختمان د $value ارزښت سره یو عنصر د پایلې سرې ته اضافه کوي او د بیان لیست اجرا کول لغوه کوي، او خالي فعالیت $null بیرته راګرځوي.

د مثال په توګه، راځئ چې د عدد د مربع کولو لپاره یو فنکشن جوړ کړو:

function sqr ($number)
{
      return $number * $number
}

په یاد ولرئ چې د فنکشن په بدن کې، تاسو کولی شئ د زنګ وهلو دمخه اعلان شوي هر ډول متغیرات وکاروئ، او په PowerShell کې د زنګ کولو فنکشن ممکن غیر معمولي ښکاري: دلیلونه (که کوم وي) په قوسونو کې نه تړل شوي او د ځایونو لخوا جلا شوي.

sqr 2

او یا هم

sqr -number 2

د دې لپاره چې دلیلونه تیریږي، فنکشن پخپله ځینې وختونه باید په قوسونو کې تړل شي:

function test_func ($n) {}
test_func -eq $null     # функция не вызывалась
(test_func) -eq $null   # результат выражения — $true

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

کله چې د فنکشن تشریح کول، تاسو کولی شئ دلیلونو ته ډیفالټ ارزښتونه وټاکئ:

function func ($arg = value) {
         #тело функции
}

د فنکشن دلیلونو تشریح کولو لپاره یو بل ترکیب شتون لري، سربیره پردې، پیرامیټونه د پایپ لاین څخه لوستل کیدی شي - دا ټول به په راتلونکې مقاله کې کار وکړي، کله چې موږ صادر شوي ماډلونه وګورو او خپل cmdlets جوړ کړو.

د پروسس کولو تېروتنه

PowerShell یو هڅه لري ... کیچ ... په پای کې د استثنااتو اداره کولو میکانیزم. د آزمایښت بلاک هغه کوډ لري چې په هغه کې یوه تېروتنه واقع کیدی شي، او د کیچ بلاک د هغې سمبالونکی لري. که کومه تېروتنه نه وي، دا نه اجرا کیږي. په نهایت کې بلاک د ټری بلاک څخه وروسته اجرا کیږي ، پرته لدې چې د یوې غلطۍ پیښې په پام کې ونیول شي ، او د مختلف ډول استثنااتو لپاره ډیری کیچ بلاکونه کیدی شي. استثنا پخپله یو غیر اعلان شوي ډیفالټ متغیر ($_) ته لیکل کیږي او په اسانۍ سره ترلاسه کیدی شي. په لاندې مثال کې، موږ د ناسم ارزښت د ننوتلو په وړاندې محافظت پلي کوو:

try {

        [int]$test = Read-Host "Введите число"
        100 / $test

} catch {

         Write-Warning "Некорректное число"
         Write-Host $_

}

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

دا په PowerShell ژبه کې د پروګرام کولو اساساتو بیاکتنه پای ته رسوي. په لاندې مقالو کې، موږ به په ډیر تفصیل سره مطالعه وکړو چې د مختلف ډولونو متغیرونو سره کار کوي، ټولګه، منظم بیانونه، د فنکشن جوړول، ماډلونه او دودیز cmdlets، او همدارنګه د اعتراض پر بنسټ پروګرامونه.

د وینډوز پاور شیل څه شی دی او د څه شی سره خوړل کیږي؟ دویمه برخه: د پروګرامینګ ژبې پیژندنه

سرچینه: www.habr.com

Add a comment