He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

ʻO ka mōʻaukala, ʻoi aku ka maikaʻi o nā pono laina kauoha ma nā ʻōnaehana Unix ma mua o Windows, akā me ka hiki ʻana mai o kahi hopena hou, ua loli ke kūlana.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Hiki ke kākau ʻia ʻo PowerShell ma kahi ʻōlelo unuhi, multi-paradigm i loaʻa nā ʻano o ke kaʻina hana maʻamau, ka hoʻonohonoho ʻana i nā mea, a me ka hoʻolālā hana: conditional branching, loops, variables, arrays, hash tables, classes, error handling, a me nā hana, cmdlets, a me nā paipu . ʻatikala mua ua hoʻolaʻa ʻia i nā kumu o ka hana ʻana i ke kaiapuni, a ke hāʻawi nei mākou i kā mākou poʻe heluhelu i kahi puke liʻiliʻi liʻiliʻi no nā mea polokalamu.

Papa o ka waihona:

Comments
Nā hoʻololi a me ko lākou ʻano
Nā hoʻololi pūnaewele
Nā ʻāpana
Nā loli kaiapuni (ka puni)
Nā mea hoʻohana helu helu a me ka hoʻohālikelike
Nā mea hoʻohana hoʻonohonoho
Nā mea hana kūpono
Lele Kūlana
Nā pōʻaiapuni
Huina
Nā papa hash
Nā hana
Ke kuhi hewa

Hiki iā ʻoe ke kākau i ke code ma kekahi mea hoʻoponopono kikokikona a i ʻole ka hoʻohana ʻana i kahi kaiapuni hoʻomohala hoʻohui ʻia - ʻo ke ala maʻalahi loa ka lawe ʻana i ka Windows PowerShell ISE e hele mai ana me nā ʻōnaehana lawelawe kikowaena Microsoft. Pono wale kēia no nā palapala paʻakikī: ʻoi aku ka maʻalahi o ka hoʻokō ʻana i nā kauoha pōkole.

Comments

ʻO ka hoʻohana ʻana i nā manaʻo i manaʻo ʻia he ʻāpana o ke ʻano papahana maikaʻi me ka indentation kūpono a me ke keʻokeʻo:

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

<# 

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

#>

Nā hoʻololi a me ko lākou ʻano

Kapa ʻia nā ʻano like ʻole ma PowerShell i nā mea. Hiki i ko lākou mau inoa ke hoʻokomo i ke ʻano underscore, a me nā leka a me nā helu. Hoʻohana mau ʻia ka hōʻailona $ ma mua o ka inoa, a no ka haʻi ʻana i kahi loli, lawa ia e hāʻawi i ka mea unuhi i ka inoa kūpono:

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

No ka hoʻomaka ʻana i kahi loli (e hāʻawi i kahi waiwai iā ia), hoʻohana ʻia ka mea hoʻohana (hōʻailona =):

$test = 100

Hiki iā ʻoe ke haʻi aku i kahi loli ma ke kuhikuhi ʻana i kona ʻano ma nā bracket square (type casting operator) ma mua o ka inoa a i ʻole ka waiwai:

[int]$test = 100

$test = [int]100

He mea nui e hoʻomaopopo i nā mea hoʻololi i PowerShell he mau mea piha piha (nā papa) me nā waiwai a me nā ʻano i hoʻokumu ʻia nā ʻano ma luna o ka .NET Core. Hoʻopaʻa mākou i nā mea nui:

ʻAno (. NET papa)

hōʻikeʻano

Laʻana code

[kaula] System.String

Unicode kaula 

$ ho'āʻo = "hōʻoia"
$ ho'āʻo = 'hōʻike'

[char]System.Char

ʻAno Unicode (16 mau ʻāpana)

[char]$test = 'c'

[bool] System.Boolean

ʻano boolean (boolean True or False)

[bool]$test = $ʻoiaʻiʻo

[int] Pūnaehana.Int32

kanakolukūmālua bit integer (32 bits)

[int]$test = 123456789

[lōʻihi] System.Int64

kanaonokūmāhā bit integer (64 bits)

[lōʻihi]$test = 12345678910

[hookahi] System.Single

helu helu lana 32 bits ka lōʻihi

[hoʻokahi]$hōʻoia = 12345.6789

[pālua] Pūnaehana.Palua

helu lana o ka loa 64 bits (8 bytes)

[pālua]$test = 123456789.101112

[decimal] Pūnaehana.Decimal

Helu helu lana 128-bit (pono e hoʻopau me d)

[decimal]$ ho'āʻo = 12345.6789d

[Lā manawa]System.DateTime

lā a me ka manawa 

$ ho'āʻo = GetDate

[hui] Pūnaehana.mea[]

he laha e hoʻomaka ana ka index index ma 0

$test_array = 1, 2, "hōʻoia", 3, 4

[hashtable] System.Collections.Hashtable

ʻO nā papaʻaina hash nā hui pū me nā kī i kapa ʻia, kūkulu ʻia e like me ke kumu: @{key = "value"}

$test_hashtable = @{one="one"; ʻelua="ʻelua"; ʻekolu="ʻekolu"}

Kākoʻo ʻo PowerShell i ka hoʻololi ʻana i ke ʻano implicit, ʻo ia hoʻi, hiki ke hoʻololi ʻia ke ʻano o kahi ʻano ma ka lele (no ka laʻana, me ka hoʻohana ʻana i kahi mea hoʻohana hana), inā ʻaʻole i kuhikuhi ikaika ʻia - i kēia hihia, e hāʻawi ka unuhi ʻōlelo i kahi hewa. Hiki iā ʻoe ke hoʻoholo i ke ʻano o ka hoʻololi mai ka laʻana mua ma ke kāhea ʻana i ke ala GetType()

$test.GetType().FullName

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Nui nā cmdlet no ka hoʻoponopono ʻana i nā ʻano like ʻole. Hōʻike ʻia kā lākou papa inoa ma kahi ʻano kūpono me ka hoʻohana ʻana i ke kauoha:

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

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

No ka ʻike ʻana i nā mea hoʻololi i haʻi ʻia a me kā lākou mau waiwai, hiki iā ʻoe ke hoʻohana i kahi cmdlet kūikawā:

Get-Variable | more

ʻOi aku ka paʻakikī o kēia ʻano hana, ʻoi aku ka maʻalahi o ka hana ʻana me nā mea hoʻololi ma o nā mea hana a i ʻole ke komo pololei ʻana i kā lākou mau waiwai a me nā ʻano hana. Eia nō naʻe, he kuleana ko nā cmdlet no ka mea e ʻae lākou iā ʻoe e hoʻonohonoho i kekahi mau ʻāpana. He mea nui e hoʻomaopopo i ka wehewehe ʻana o nā mea hoʻohana i loko o ke kau o kēia manawa. Ke pani ʻia ka console a i ʻole ka pau ʻana o ka palapala, holoi ʻia lākou.

Nā hoʻololi pūnaewele

Ma waho aʻe o nā mea i haʻi ʻia e ka mea hoʻohana, aia nā mea i kūkulu ʻia (pūnaewele) ʻaʻole i holoi ʻia ma hope o ka pau ʻana o ke kau o kēia manawa. Hoʻokaʻawale ʻia lākou i ʻelua mau ʻano, ʻoiai ʻo PowerShell state data e mālama ʻia i nā ʻano hoʻololi ʻokoʻa ʻaʻole hiki ke hāʻawi ʻia i nā waiwai kūʻokoʻa iā lākou iho. Aia kēia mau mea, no ka laʻana, $PWD:

$PWD.Path

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Pono nā koho koho e mālama i nā makemake o ka mea hoʻohana, hiki ke hoʻololi i nā waiwai. No ka laʻana, me ka hoʻohana ʻana i $ErrorActionPreference, ua hoʻonohonoho ʻia ka pane o ka unuhi ʻōlelo kauoha i ka loaʻa ʻana o nā hewa make ʻole.

Ma waho aʻe o nā mea hoʻohana a me nā cmdlet no ke komo ʻana i nā mea hoʻololi i haʻi ʻia, aia kahi ʻano hoʻololi: pseudo-accumulator. Hiki iā ʻoe ke hana pū me ia ma ka hoʻohālikelike me nā drive ʻē aʻe, a ʻo nā ʻano like ʻole i kēia hihia e like me nā mea ʻōnaehana faila:

Get-ChildItem Variable: | more

ai ole ia,

ls Variable: | more

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Nā ʻāpana

No nā hoʻololi i PowerShell, aia ka manaʻo o ka laulā (Scope). ʻO ka hana o ka pae honua (Global) pili i ke kau holoʻokoʻa o kēia manawa - aia, no ka laʻana, nā ʻōnaehana ʻōnaehana. Loaʻa nā ʻano hoʻololi kūloko (Local) wale nō ma ke kiko kahi i wehewehe ʻia ai lākou: e ʻōlelo i loko o kahi hana. Aia kekahi manaʻo o ka laulā o ka palapala (Script), akā no nā kauoha script, ʻo ia ka mea maoli. Ma ka maʻamau, i ka wā e haʻi aku ai i nā mea hoʻololi, hāʻawi ʻia lākou i kahi ākea kūloko, a no ka hoʻololi ʻana i kēia, pono ʻoe i kahi kūkulu kūikawā e like me: $Global: variable = waiwai.

No ka laʻana, e like me kēia:

$Global:test = 100

Nā loli kaiapuni (ka puni)

Loaʻa kekahi pseudo-drive, Env:, mai PowerShell a hiki ke hoʻohana ʻia e kiʻi i nā ʻano hoʻololi kaiapuni. I ka hoʻomaka ʻana o ka pūpū, ua kope ʻia lākou mai ke kaʻina hana makua (ʻo ia hoʻi, mai ka papahana i hoʻomaka i ka hālāwai o kēia manawa) a ʻo ka maʻamau o kā lākou mau waiwai mua e like me nā waiwai i ka papa mana. No ka nānā ʻana i nā ʻano hoʻololi kaiapuni, e hoʻohana i ka Get-ChildItem cmdlet a i ʻole kona mau inoa inoa (aliases): ls a me dir.

dir Env:

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

ʻO kēia mau ʻano hoʻololi ke kaʻina o nā bytes (a i ʻole nā ​​​​huaʻōlelo, inā makemake ʻoe), ʻo ka wehewehe ʻana e pili ana i ka papahana e hoʻohana ana iā lākou. ʻAʻole hana nā *-Variable cmdlets me nā mea hoʻololi kaiapuni. No ke komo ʻana iā lākou, pono ʻoe e hoʻohana i ka prefix drive:

$env:TEST = "Hello, World!"

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Nā mea hoʻohana helu helu a me ka hoʻohālikelike

Hāʻawi ʻo PowerShell i nā mea hana helu penei: + (hoʻohui), - (unuhi), * (hoʻonui), / (māhele), a me % (modulo a modulo paha). ʻIke ʻia ka hopena o ka haʻi helu helu mai ka hema a i ka ʻākau e like me ke ʻano o nā hana i ʻae ʻia, a hoʻohana ʻia nā pale e hui pū i nā ʻāpana o ka ʻōlelo. ʻAʻole mālama ʻia nā wahi ma waena o nā mea hoʻohana, hoʻohana wale ʻia lākou i mea e maʻalahi ai ka heluhelu ʻana. Hoʻohui pū ka mea hana +, a hana hou ka mea hana * i nā kaula. Inā hoʻāʻo ʻoe e hoʻohui i kahi helu i kahi kaula, e hoʻololi ʻia ia i kahi kaula. Eia kekahi, ʻo ka ʻōlelo PowerShell he nui nā mea hoʻohālikelike e nānā i ka hoʻokūkū ma waena o nā waiwai ʻelua a hoʻihoʻi i ka boolean ʻOiaʻiʻo a i ʻole False:

Operator

hōʻikeʻano

Laʻana code

-eq

Equal / Equals (e like me = a i ʻole == ma nā ʻōlelo ʻē aʻe)

$ hoao = 100
$ hoao -eq 123 

-He aha

ʻAʻole like / ʻAʻole like (like me <> a i ʻole !=)

$ hoao = 100
$ hoao -ne 123   

-gt

ʻoi aku ma mua o / ʻoi aku (analogue >)

$ hoao = 100
$ hoao -gt 123

-ge

Nui aʻe a i ʻole like / ʻoi aku ma mua o a i ʻole like (e like me >=)

$ hoao = 100
$ hoao -ge 123

-lt

Liʻiliʻi ma mua o / Liʻiliʻi (e like me <)

$ hoao = 100
$ hoao -lt 123  

-ka

Liʻiliʻi a i ʻole like / ʻoi aʻe a like paha (e like me <=)

$ hoao = 100
$ hoao -le 123

Aia kekahi mau mea hoʻohana like ʻē aʻe e ʻae iā ʻoe, no ka laʻana, hoʻohālikelike i nā kaula e pili ana i ka wildcard a i ʻole e hoʻohana i nā ʻōlelo maʻamau e hoʻohālikelike i kahi ʻano. E uhi mākou iā lākou ma nā ʻatikala e hiki mai ana. ʻAʻole hoʻohana ʻia nā hōʻailona <, > a me = no ka hoʻohālikelike ʻana no ka mea hoʻohana ʻia lākou no nā kumu ʻē aʻe.

Nā mea hoʻohana hoʻonohonoho

Ma waho aʻe o ka mea maʻamau = mea hoʻohana, aia kekahi mau mea hoʻohana hana: +=, -=, *=, /= a me %=. Hoʻololi lākou i ka waiwai ma mua o ka hāʻawi ʻana. ʻO nā mea hoʻohana unary ++ a me -, ka mea e hoʻonui a hoʻemi paha i ka waiwai o kahi hoʻololi, hana like - pili pū lākou i nā mea hana hoʻonohonoho.

Nā mea hana kūpono

ʻAʻole lawa ka hoʻohālikelike wale ʻana e wehewehe i nā kūlana paʻakikī. Hiki iā ʻoe ke kākau i nā ʻōlelo hoʻohālikelike me ka hoʻohana ʻana i nā mea hoʻohana: -and, -or, -xor, -not and!

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

-not (123 -gt 321) 

!(123 -gt 321)

Lele Kūlana

He kūlana maʻamau nā mea hoʻohana lālā ma PowerShell: IF(IF…ELSE, IF…ELSEIF…ELSE) a me SWITCH. E nānā kākou i kā lākou hoʻohana ʻana me nā laʻana:

[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 или значение не определено"}
}

Nā pōʻaiapuni

Loaʻa iā PowerShell nā ʻano puka lou: WHILE, DO WHILE, DO UNTIL, FOR, a me FOREACH.

Hoʻohana ka loop me ka precondition inā he ʻoiaʻiʻo:

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

E holo ana nā Loops me ka postcondition ma ka liʻiliʻi loa, no ka mea, nānā ʻia ke kūlana ma hope o ka ʻike. I ka manawa like, e hana ʻo DO WHILE me ka ʻoiaʻiʻo o ke kūlana, a me DO UNTIL e hana ʻoiai he wahaheʻe:

[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)

Ua ʻike mua ʻia ka helu o nā ʻike o ka loop FOR:

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

I loko o ka loop FOREACH, e hoʻololi hou i nā mea o kahi laʻana a i ʻole ka hōʻiliʻili (hash table):

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

Huina

ʻAʻole mālama nā mea hoʻololi PowerShell i nā mea hoʻokahi wale nō (helu, string, etc.), akā he nui pū kekahi. ʻO ke ʻano maʻalahi o ia mau ʻano he arrays. Hiki i kahi laha ke komo i kekahi mau mea, hoʻokahi mea, a nele paha, ʻo ia. ʻaʻohe mea i loaʻa. Ua haʻi ʻia me ka hoʻohana ʻana i ka @() mea hoʻohana, a mākou e pono ai i ka ʻatikala aʻe - he mea nui ia no ka hoʻohui ʻana i nā arrays ʻē aʻe i kahi array (hana ʻana i nā arrays multidimensional), e hele ana i nā arrays i nā hana ma ke ʻano he hoʻopaʻapaʻa, a me nā hana like:

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

Ke hoʻomaka ʻia kahi array, ua hoʻokaʻawale ʻia kāna mau waiwai e nā koma (mea hoʻohana kūikawā,):

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

I ka nui o nā hihia, hiki ke hoʻokuʻu ʻia ka mea hoʻohana @():

$test_array = 1, 2, 3, 4

I kēia hihia, hoʻomaka ʻia kahi ʻano o kahi mea e like me kēia

$test_array = , 1

Hoʻokomo ʻia nā mea hoʻonohonoho me ka hoʻohana ʻana i ka helu helu helu helu ʻole a me ka mea hoʻohana kuhikuhi (nā ʻāpana ʻāpana):

$test_array[0] = 1

Hiki iā ʻoe ke kuhikuhi i kekahi mau kuhikuhi i hoʻokaʻawale ʻia e nā koma, incl. e hana hou ana:

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

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Operator .. (ʻelua kiko - mea hoʻohana laulā) e hoʻihoʻi i kahi ʻano helu i loko o ka palena luna a me lalo. No ka laʻana, hoʻopuka ka huaʻōlelo 1..4 i kahi laha o ʻehā mau mea @(1, 2, 3, 4), a ʻo ka ʻōlelo 8..5 e hoʻopuka i kahi hui @(8, 7, 6, 5).

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Ke hoʻohana nei i ka mea hoʻohana kikowaena, hiki iā ʻoe ke hoʻomaka i kahi array ($test_array = 1..4) a i ʻole e kiʻi i kahi ʻāpana (slice), ʻo ia hoʻi. he kaʻina o nā mea mai kahi ʻano me nā kuhikuhi mai kekahi. I kēia hihia, ʻo kahi helu maikaʻi ʻole -1 e hōʻike ana i ka mea hope loa o ka array, -2 - ka penultimate, a pēlā aku.

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

E hoʻomanaʻo e hiki ke ʻoi aku ka nui o nā waiwai integer ma mua o ka nui o ka helu helu helu o ka ʻikepili. I kēia hihia, hoʻihoʻi ʻia nā waiwai āpau i ka mea hope loa:

$test_array[0..100]

Inā ʻoe e hoʻāʻo e komo i kahi mea hoʻonohonoho hoʻokahi ʻaʻole i loaʻa, ua hoʻihoʻi ʻia ka $null.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Ma PowerShell, hiki i nā arrays ke loaʻa i nā mea o nā ʻano ʻano like ʻole a i ʻole e paʻi ikaika ʻia:

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

Ma kahi o ka waiwai $test_array.count ka helu o nā mea hoʻonohonoho.

ʻO kahi laʻana o ka hana ʻana i kahi array paʻa ikaika:

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

Nā papa hash

ʻO kekahi ʻano maʻamau o nā mea hoʻololi i ka ʻōlelo PowerShell he papa hash, ʻike ʻia hoʻi he hui hui. Ua like nā Hashtables me nā mea JSON a ua kūkulu ʻia ma ke kumu waiwai nui. ʻAʻole e like me nā arrays maʻamau, loaʻa kā lākou mau mea e nā kī i kapa ʻia, ʻo ia nā waiwai o ka mea (hiki iā ʻoe ke hoʻohana i ka mea hoʻohana index - square brackets).

Hōʻike ʻia kahi papa hash kaʻawale me ka hoʻohana ʻana i ka hōʻailona @ a me nā brackets operator:

$test_hashtable = @{}

I ka haʻi ʻana, hiki iā ʻoe ke hana koke i nā kī a hāʻawi i nā waiwai iā lākou:

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

No ka hoʻohui ʻana i kahi mea i ka papaʻaina hash, pono ʻoe e hāʻawi i kahi kī ʻaʻole i loaʻa iā ia, a i ʻole e hoʻohana i ke ʻano Add (). Inā hana ʻia kahi hāʻawi i kahi kī e kū nei, e loli ana kona waiwai. Hoʻohana ʻia ke ala Wehe () e wehe i kahi mea mai kahi papa hash.

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

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Hiki ke hāʻawi ʻia nā ʻano like ʻole o kēia ʻano e like me nā hoʻopaʻapaʻa i nā hana a me nā cmdlet - ma ka ʻatikala aʻe e aʻo mākou pehea e hana ʻia ai, a noʻonoʻo pū kekahi ʻano like - PSCustomObject.

Nā hana

Loaʻa iā PowerShell nā mea a pau āu e pono ai no ka papahana kaʻina hana, me nā hana. No ka wehewehe ʻana iā lākou, hoʻohana ʻia ka huaʻōlelo Function, a laila pono ʻoe e kuhikuhi i ka inoa o ka hana a me ke kino i hoʻopaʻa ʻia i nā bracket operator. Inā pono ʻoe e hāʻawi i nā hoʻopaʻapaʻa i ka hana, hiki iā ʻoe ke kuhikuhi iā lākou ma hope koke o ka inoa i loko o nā pale.

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

Hoʻihoʻi mau ka hana i kahi hopena - he ʻano ia o nā hopena o kāna mau ʻōlelo a pau, inā ʻoi aku ma mua o hoʻokahi. Inā hoʻokahi wale nō ʻōlelo, hoʻihoʻi ʻia ka waiwai o ke ʻano like. Hoʻohui ka hoʻihoʻi $value construct i kahi mea me ka waiwai $value i ka pae hopena a hoʻopau i ka hoʻokō ʻana o ka papa inoa ʻōlelo, a hoʻihoʻi ka hana hakahaka i $null.

No ka laʻana, e hana kākou i hana no ka hoʻohālua ʻana i ka helu:

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

E hoʻomanaʻo i loko o ke kino o kahi hana, hiki iā ʻoe ke hoʻohana i nā ʻano like ʻole i haʻi ʻia ma mua o ke kāhea ʻana iā ia, a ʻo ke kāhea ʻana i nā hana ma PowerShell he mea maʻamau: ʻaʻole i hoʻopaʻa ʻia nā manaʻo (inā loaʻa) i loko o nā pale a hoʻokaʻawale ʻia e nā hakahaka.

sqr 2

a i ʻole

sqr -number 2

Ma muli o ke ʻano o ka hoʻopaʻapaʻa ʻana, pono e hoʻopaʻa ʻia ka hana ponoʻī i kekahi manawa i nā pale:

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

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

I ka wehewehe ʻana i kahi hana, hiki iā ʻoe ke hāʻawi i nā waiwai paʻamau i nā hoʻopaʻapaʻa:

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

Aia kekahi syntax no ka wehewehe ʻana i nā hoʻopaʻapaʻa hana, ʻo ia hoʻi, hiki ke heluhelu ʻia nā ʻāpana mai ka pipeline - hiki mai kēia mau mea āpau i ka ʻatikala aʻe, ke nānā mākou i nā modules i lawe ʻia a hana i kā mākou mau cmdlets.

Ke kuhi hewa

Loaʻa i ka PowerShell kahi hoʻāʻo...Catch...Finally mechanical e mālama i nā ʻokoʻa. Aia i loko o ka poloka ho'āʻo ke code kahi e hiki mai ai ka hewa, a ʻo ka poloka ʻo Catch aia kona mea hoʻohana. Inā ʻaʻohe hewa, ʻaʻole hoʻokō ʻia. Hoʻokō ʻia ka poloka hope ma hope o ka poloka hoʻāʻo, me ka nānā ʻole i ka loaʻa ʻana o kahi hewa, a hiki ke loaʻa kekahi mau poloka Catch no nā ʻano ʻokoʻa like ʻole. Ua kākau ʻia ka ʻokoʻa i kahi hoʻololi paʻamau undeclared ($_) a hiki ke kiʻi maʻalahi. Ma ka laʻana ma lalo nei, hoʻokō mākou i ka pale mai ka hoʻokomo ʻana i kahi waiwai kūpono ʻole:

try {

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

} catch {

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

}

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Hoʻopau kēia i ka loiloi o nā kumu o ka hoʻolālā ʻana ma ka ʻōlelo PowerShell. Ma nā ʻatikala aʻe, e aʻo nui mākou i ka hana ʻana me nā ʻano like ʻole, nā hōʻiliʻili, nā hōʻike maʻamau, ka hana ʻana i nā hana, nā modula a me nā cmdlet maʻamau, a me ka hoʻonohonoho ʻana i nā mea.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Māhele 2: Hoʻomaka i ka ʻōlelo papahana

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka