Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Ngokwembali, izixhobo zomyalelo womyalelo kwiinkqubo ze-Unix ziphuhliswe ngcono kuneWindows, kodwa ngokufika kwesisombululo esitsha, imeko itshintshile.

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

I-PowerShell inokubhalwa ngolwimi olutolikwayo, oluneparadigm ezininzi ezinezinto zenkqubo yeklasikhi, ijolise kwinto, kunye nenkqubo esebenzayo: i-branching enemiqathango, iilophu, izinto eziguquguqukayo, ii-arrays, iitafile ze-hash, iiklasi, ukuphatha iimpazamo, kunye nemisebenzi, cmdlets, kunye nemibhobho. Inqaku elidlulileyo yayizinikele kwiziseko zokusebenza kokusingqongileyo, kwaye ngoku sinika abafundi bethu incwadi encinci yesalathiso kubadwelisi benkqubo.

Isiqulatho:

izimvo
Izinto eziguquguqukayo kunye neentlobo zazo
Iinguqu zenkqubo
Imida
Izinto eziguquguqukayo zokusingqongileyo (indalo engqongileyo)
Abaqhubi be-arithmetic kunye nothelekiso
Abaqhubi bezabelo
Abasebenza ngokuqiqayo
Conditional Jump
Imiqulu
Ukufika
Iitafile zeHash
Imisebenzi
Uqhubekeko lwempazamo

Ungabhala ikhowudi nakuwuphi na umhleli wombhalo okanye usebenzise imeko-bume ehlanganisiweyo yophuhliso-eyona ndlela ilula kukuthatha iWindows PowerShell ISE eza neenkqubo zokusebenza zeseva yeMicrosoft. Oku kuyimfuneko kuphela kwizikripti ezintsonkothileyo: iiseti ezimfutshane zemiyalelo zilula ukuphumeza ngokudibana.

izimvo

Ukusebenzisa amagqabantshintshi kuthathwa njengenxalenye yesimbo sokucwangcisa esilungileyo kunye ne-identation efanelekileyo kunye ne-whitespace:

# Для строчных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ символ Ρ€Π΅ΡˆΠ΅Ρ‚ΠΊΠΈ β€” содСрТимоС строки ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚.

<# 

       Π’Π°ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ коммСнтария. 
       Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ тСкст ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚.

#>

Izinto eziguquguqukayo kunye neentlobo zazo

Uguquguquko kwi-PowerShell kuthiwa zizinto. Amagama abo angabandakanya umlinganiswa ongezantsi, kunye noonobumba kunye namanani. Isimboli ye-$ isoloko isetyenziswa phambi kwegama, kwaye ukubhengeza ukuguquguquka, kwanele ukunika itoliki igama elisebenzayo:

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Ukuqalisa ukuguquguquka (ukunika ixabiso kuyo), umsebenzisi wesabelo (uphawu =) uyasetyenziswa:

$test = 100

Ungabhengeza ulwahlulo ngokukhankanya uhlobo lwayo kwizibiyeli ezisikweri (uhlobo lomsebenzi wokuphosa) phambi kwegama okanye ixabiso:

[int]$test = 100

$test = [int]100

Kubalulekile ukuqonda ukuba izinto eziguquguqukayo kwi-PowerShell zizinto ezizeleyo (iiklasi) ezineempawu kunye neendlela ezineentlobo ezisekelwe kwezo zikwi-.NET Core. Sidwelisa ezona ziphambili:

Chwetheza (.NET iklasi)

inkcazelo

Umzekelo wekhowudi

[Umtya] Inkqubo.Umtya

Umtya we-Unicode 

$test = "uvavanyo"
$uvavanyo = 'uvavanyo'

[char]Inkqubo.Char

Unobumba we-Unicode (16 bits)

[char]$test = 'c'

[bool] Inkqubo.Boolean

uhlobo lwe boolean (boolean Yinyani okanye Bubuxoki)

[bool] $test = $ true

[int] System.Int32

amanani angamashumi amathathu anesibini (32 bits)

[int] $test = 123456789

[inde] System.Int64

amasuntswana amathandathu anesine (64 bits)

[ixesha elide] uvavanyo lwe-$ = 12345678910

[eyodwa] System.Enye

indawo edadayo inani lamasuntswana angama-32 ubude

[eyodwa] $ uvavanyo = 12345.6789

[kabini] Inkqubo.Kabini

Inani lendawo edadayo lobude obungamasuntswana angama-64 (iibhayithi ezisi-8)

[kabini] uvavanyo lwe-$ = 123456789.101112

[idesimali]Inkqubo.Idesimali

I-128-bit inombolo yenqaku elidadayo (elifunekayo ukuze iphele ngo-d)

[idesimali] $test = 12345.6789d

[Umhla weXesha]System.DateTime

umhla kunye nexesha 

Uvavanyo lwe-$ = GetDate

[Uluhlu] Inkqubo.Object[]

uluhlu olusalathiso luqala ku-0

$test_array = 1, 2, "uvavanyo", 3, 4

[Hashtable] System.Collections.Hashtable

iitafile zehash zizintlu ezidibanisayo ezinezitshixo ezinegama, ezakhiwe ngokomgaqo: @{isitshixo = "ixabiso"}

$test_hashtable = @ {one = "enye"; ezimbini = "ezimbini"; ezintathu="ntathu"}

I-PowerShell isekela ukuguqulwa kohlobo olucacileyo, ngaphezu koko, uhlobo lwenguqu lunokutshintshwa kwi-fly (umzekelo, usebenzisa umqhubi wesabelo), ukuba ayichazwanga ngenkani - kulo mzekelo, itoliki iya kunika impazamo. Ungamisela uhlobo loguqulo kumzekelo wangaphambili ngokubiza i-GetType () indlela:

$test.GetType().FullName

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Kukho inani le-cmdlets zokuguqula iinguqu. Uluhlu lwabo ngendlela efanelekileyo luboniswa kusetyenziswa lo myalelo:

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

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Ukujonga iinguqu ezichaziweyo kunye namaxabiso azo, ungasebenzisa i-cmdlet ekhethekileyo:

Get-Variable | more

Le ndlela ibonakala inzima kakhulu, kulungele ngakumbi ukusebenza kunye nezinto eziguquguqukayo ngokusebenzisa abaqhubi okanye ngokufikelela kwiipropati zabo kunye neendlela ngokuthe ngqo. Nangona kunjalo, ii-cmdlets zinelungelo lokubakho kuba zikuvumela ukuba usete iiparameters ezongezelelweyo. Kubalulekile ukuqonda ukuba ukuguquguquka komsebenzisi kuchazwa kuphela kwiseshoni yangoku. Xa i-console ivaliwe okanye i-script iphela, ziyacinywa.

Iinguqu zenkqubo

Ukongeza kwezo zibhengezwe ngumsebenzisi, kukho izinto ezakhelwe ngaphakathi (iinkqubo) ezingacinywanga emva kokuba iseshoni yangoku iphelile. Zahlulwe zaba zintlobo ezimbini, ngelixa idatha ye-PowerShell yelizwe igcinwa kwizinto ezizenzekelayo ezingenako ukunikezelwa amaxabiso angenasizathu ngokwabo. Ezi ziquka, umzekelo, i-$PWD:

$PWD.Path

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Izinto ezikhethwayo ziyafuneka ukugcina izinto ozikhethayo, amaxabiso anokutshintshwa. Umzekelo, usebenzisa i-$ErrorActionPreference, impendulo yetoliki yomyalelo kwisenzeko seempazamo ezingezizo ezibulalayo isetiwe.

Ukongeza kubasebenzisi kunye ne-cmdlets yokufikelela kwizinto eziguquguqukayo ezichaziweyo, kukho i-Various: pseudo-accumulator. Unokusebenza nayo ngokufanisa nezinye iidrive, kwaye izinto eziguquguqukayo kulo mzekelo zifana nezinto zenkqubo yefayile:

Get-ChildItem Variable: | more

okanye

ls Variable: | more

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Imida

Kwizinto eziguquguqukayo kwi-PowerShell, kukho ingqikelelo yobubanzi (Scope). Isenzo sobubanzi behlabathi (i-Global) sisebenza kuyo yonke iseshoni yangoku - ibandakanya, umzekelo, iinguqu zenkqubo. Iinguqu zasekuhlaleni (Ezasekuhlaleni) zifumaneka kuphela kumda apho zichazwe khona: yithi ngaphakathi komsebenzi. Kukwakho nombono womda weskripthi (Iskripthi), kodwa kwimiyalelo yeskripthi, iyindawo. Ngokungagqibekanga, xa ubhengeza iinguqu, zinikwa umda wendawo, kwaye ukutshintsha oku, udinga ukwakhiwa okukhethekileyo okufana ne: $ Global: variable = value.

Umzekelo, njengale:

$Global:test = 100

Izinto eziguquguqukayo zokusingqongileyo (indalo engqongileyo)

Enye i-pseudo-drive, i-Env:, iyafumaneka kwi-PowerShell kwaye ingasetyenziselwa ukufikelela kwizinto eziguquguqukayo zendalo. Xa iqokobhe liqala, zikhutshelwa kwinkqubo yomzali (oko kukuthi, kwinkqubo eqalise iseshoni yangoku) kwaye ngokwesiqhelo amaxabiso abo okuqala ayafana namaxabiso kwindawo yolawulo. Ukujonga izinto ezahlukeneyo zokusingqongileyo, sebenzisa i Get-ChildItem cmdlet okanye iziteketiso zayo (iziteketiso): ls kunye ne-dir.

dir Env:

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Ezi ziguquguqukayo zilandelelwano lwee-bytes (okanye iimpawu, ukuba uyathanda), ukutolika okuxhomekeke kuphela kwinkqubo ezisebenzisayo. I * -Variable cmdlets ayisebenzi ngokuguquguquka kokusingqongileyo. Ukufikelela kuzo, kufuneka usebenzise isimaphambili sokuqhuba:

$env:TEST = "Hello, World!"

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Abaqhubi be-arithmetic kunye nothelekiso

I-PowerShell ibonelela ngaba baqhubi be-arithmetic balandelayo: + (ukudibanisa), - (ukuthabatha), * (phinda-phinda), / (ukwahlula), kunye ne-% (modulo okanye imodyuli). Isiphumo sokuchazwa kwezibalo siyavandlakanywa ukusuka ekhohlo ukuya ekunene ngokungqinelana nocwangco oluvunyiweyo jikelele lwemisebenzi, kwaye izibiyeli zisetyenziselwa ukuhlanganisa iinxalenye zentetho. Izithuba phakathi kwabaqhubi azihoywa, zisetyenziselwa kuphela ukukhululeka kokuqonda. Umsebenzisi + ukwadibanisa, kwaye * umsebenzisi uphinda iintambo. Ukuba uzama ukongeza inani kumtya, liya kuguqulwa libe ngumtya. Ukongeza, baninzi abaqhubi abathelekisayo kwi-PowerShell abavavanya umdlalo phakathi kwamaxabiso amabini kwaye babuyisele i-boolean Yinyani okanye Bubuxoki:

Umqhubi

inkcazelo

Umzekelo wekhowudi

-eq

Iyalingana / Iyalingana (iyafana no = okanye == kwezinye iilwimi)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -eq 123 

-yiyo

Ayilingani / Ayilingani (iyafana ne <> okanye !=)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -ne 123   

-gt

Enkulu kune / Ngaphezulu (i-analogue>)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -gt 123

-ge

Mkhulu kuno okanye uyalingana / Mkhulu kuno okanye uyalingana (iyafana >=)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -ge 123

-lt

Ngaphantsi kwe / Ngaphantsi (iyafana ne <)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -lt 123  

-i

Ngaphantsi okanye kuyalingana / Ngaphantsi okanye kuyalingana (iyafana <=)

Uvavanyo lwe-$ = 100
Uvavanyo lwe-$ -le 123

Kukho abanye abaqhubi abafanayo abakuvumela ukuba, umzekelo, uthelekise imitya esekelwe kwi-wildcard okanye usebenzise iintetho eziqhelekileyo ukuze utshatise ipateni. Siza kuzigubungela ngokweenkcukacha kumanqaku azayo. Iimpawu <,> kunye = azisetyenziselwanga ukuthelekisa kuba zisetyenziselwa ezinye iinjongo.

Abaqhubi bezabelo

Ukongeza kweyona iqhelekileyo = umsebenzisi, kukho abanye abasebenzi bezabelo: +=, -=, *=, /= kunye ne%=. Batshintsha ixabiso phambi kwesabelo. Abaqhubi abangaziwayo ++ kunye -, abanyusa okanye banciphisa ixabiso loguquko, baziphatha ngendlela efanayo - bayasebenza nakubasebenzisi bezabelo.

Abasebenza ngokuqiqayo

Ukuthelekisa kuphela akwanelanga ukuchaza iimeko ezinzima. Ungabhala naziphi na iintetho ezinengqiqo usebenzisa abasebenzi: -kunye, -okanye, -xor, -hayi kwaye!

("ВСст" -eq "ВСст") -and (100 -eq 100)

-not (123 -gt 321) 

!(123 -gt 321)

Conditional Jump

Abasebenzisi besebe kwi-PowerShell basemgangathweni: IF(IF...ELSE, IF…ELSEIF…ELSE) kunye TSHINTSHA. Makhe sijonge ukusetyenziswa kwazo ngemizekelo:

[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 ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ"}
}

Imiqulu

I-PowerShell ineentlobo ezininzi zeelophu: NGELIXA, YENZA NGEXA, YENZA KUDE, NGENXA, kunye ne-FOREACH.

Iluphu enommiselo iyasebenza ukuba/ukuba nje iyinyani:

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

I-Loops ene-postcondition iya kuqhuba ubuncinane kanye, kuba imeko ihlolwe emva kokuphindaphinda. Kwangaxeshanye, YENZA NGEXA isebenza ngelixa imeko iyinyani, kwaye YENZA UDE isebenze ngelixa ibubuxoki:

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

Inani lokuphindaphinda kwe-F loop laziwa kwangaphambili:

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

Kwi-loop FOREACH, iphinda-phinda ngaphezulu kwezinto zoluhlu okanye ingqokelela (itafile yehash):

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

Ukufika

Izinto eziguquguqukayo ze-PowerShell azigcini kuphela izinto enye (inombolo, umtya, njl.), kodwa kunye nezininzi. Olona hlobo lulula lwezo ziguquguqukayo luluhlu. Uluhlu lunokuba neziqalelo ezininzi, isiqalelo esinye, okanye lungabi nanto, okt. ayinaziqalelo. Ibhengezwa kusetyenziswa i-@() umsebenzisi, esiya kuyidinga kwinqaku elilandelayo - kubaluleke kakhulu ekongezeni ezinye ii-arrays kuluhlu (ukudala uluhlu lwe-multidimensional), ukudlulisa uluhlu kwimisebenzi njengengxabano, kunye nemisebenzi efanayo:

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

Xa uluhlu luqalisiwe, amaxabiso alo adweliswe ngokwahlulwe ziikoma (umqhubi okhethekileyo,):

$test_array = @(1, 2, 3, 4) # создаСм массив ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов 

Kwiimeko ezininzi, @() umsebenzisi unokushiywa:

$test_array = 1, 2, 3, 4

Kule meko, uluhlu lwento enye luqaliswa ngolu hlobo lulandelayo

$test_array = , 1

Uluhlu lwezinto ziyafikelelwa kusetyenziswa isalathisi esipheleleyo esisekwe ku-zero kunye nomsebenzisi wesalathiso (izibiyeli zesikwere):

$test_array[0] = 1

Ungakhankanya izalathisi ezininzi ezahlulwe ngeekoma, ukuquka. phinda-phinda:

$test_array = "ΠΎΠ΄ΠΈΠ½", "Π΄Π²Π°", "Ρ‚Ρ€ΠΈ", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅"
$test_array[0,1,2,3]
$test_array[1,1,3,3,0]

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Umqhubi .. (amachaphaza amabini - umsebenzisi woluhlu) ubuyisela uluhlu lwamanani apheleleyo ngaphakathi kwemida ephezulu nasezantsi ekhankanyiweyo. Umzekelo, intetho 1..4 ivelisa uluhlu lwezinto ezine @(1, 2, 3, 4), kunye nentetha 8..5 ikhupha uluhlu @(8, 7, 6, 5).

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Ukusebenzisa uluhlu lomsebenzi, unokuqalisa uluhlu ($test_array = 1..4) okanye ufumane isilayi (isiqwenga), i.e. Ulandelelwano lweziqalelo ukusuka kwelinye uluhlu kunye nezalathi ukusuka kwenye. Kule meko, inani elibi -1 libonisa into yokugqibela yoluhlu, -2 - i-penultimate, njalo njalo.

$test_array = "ΠΎΠ΄ΠΈΠ½", "Π΄Π²Π°", "Ρ‚Ρ€ΠΈ", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅"
$test_array[0..2]
$test_array[2..0]
$test_array[-1..0]
$test_array[-2..1]

Qaphela ukuba uluhlu olupheleleyo lwamaxabiso lunokuba likhulu kunelona xabiso liphezulu lesalathisi soluhlu lwedatha. Kule meko, onke amaxabiso abuyiselwa kwelokugqibela:

$test_array[0..100]

Ukuba uzama ukufikelela kwinto enye engekhoyo yoluhlu, i-$null iyabuyiswa.

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Kwi-PowerShell, ii-arrays zinokuqulatha izinto zeentlobo ezahlukeneyo okanye zichwethezwe ngamandla:

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

Apho ipropathi ye-$test_array.count linani leziqalelo zoluhlu.

Umzekelo wokudala uluhlu oluchwethezwe ngamandla:

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

Iitafile zeHash

Olunye uhlobo olusisiseko lokuguquguquka kwi-PowerShell ziitafile ze-hash, ezaziwa ngokuba zii-associative arrays. IiHashtables ziyafana nezinto ze-JSON kwaye zakhiwe kwisiseko sexabiso eliphambili. Ngokungafaniyo noluhlu oluqhelekileyo, izinto zabo zifikelelwa ngezitshixo ezibizwa ngokuba ziipropathi zento (ungasebenzisa kwakhona umqhubi wesalathisi - izibiyeli zesikwere).

Itafile yehashi engenanto ibhengezwa kusetyenziswa i @ isimboli kunye nezibiyeli zomsebenzisi:

$test_hashtable = @{}

Xa ubhengeza, unokwenza kwangoko izitshixo kwaye ubabele amaxabiso:

$test_hashtable = @{one="ΠΎΠ΄ΠΈΠ½"; two="Π΄Π²Π°"; three="Ρ‚Ρ€ΠΈ"; "some key"="some value"}

Ukongeza into kwitafile yehash, kufuneka unikeze isitshixo esingekabikho kuyo, okanye usebenzise indlela Yongeza (). Ukuba isabelo senziwa kwisitshixo esikhoyo, ixabiso laso liya kutshintsha. Susa () indlela isetyenziselwa ukususa into kwitafile yehashi.

$test_hashtable."some key"
$test_hashtable["some key"]
$test_hashtable.Add("four", "Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅")
$test_hashtable.five = "ΠΏΡΡ‚ΡŒ"
$test_hashtable['five'] = "замСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅"
$test_hashtable.Remove("one")

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Iinguqu zolu hlobo zinokugqithiswa njengeengxabano kwimisebenzi kunye ne-cmdlets - kwinqaku elilandelayo siza kufunda ukuba kwenziwa njani oku, kwaye siqwalasele nolunye uhlobo olufanayo - PSCustomObject.

Imisebenzi

I-PowerShell inayo yonke into oyifunayo kwinkqubo yenkqubo, kuquka nemisebenzi. Ukuzichaza, igama lomsebenzi elithi Function lisetyenzisiwe, emva koko kufuneka uchaze igama lomsebenzi kunye nomzimba ofakwe kwizibiyeli zabaqhubi. Ukuba ufuna ukudlulisa iimpikiswano kumsebenzi, ungazikhankanya ngoko nangoko emva kwegama kwizibiyeli.

function имя-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚1, ..., Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚N) 
{ 
        Ρ‚Π΅Π»ΠΎ-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ 
} 

Umsebenzi uhlala ubuyisela isiphumo - luluhlu lweziphumo zazo zonke iingxelo, ukuba kukho ngaphezu kwesinye. Ukuba kukho ingxelo enye kuphela, ixabiso lodwa lohlobo oluhambelanayo libuyiselwa. Imbuyekezo yexabiso lolwakhiwo lwe-$ yongeza into enexabiso lexabiso lexabiso kwisiphumo soluhlu kwaye itshitshise ukuphunyezwa koluhlu lwengxelo, kwaye umsebenzi ongenanto ubuyisela i-$ null.

Umzekelo, masenze umsebenzi wokuphinda-phinda inani:

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

Qaphela ukuba ungasebenzisa naziphi na iinguqu ezichazwe phambi kokubiza umsebenzi kumzimba womsebenzi, kwaye ukubiza imisebenzi kwi-PowerShell kunokubonakala kungaqhelekanga: iingxoxo (ukuba zikhona) azifakwanga kwizibiyeli kwaye zahlulwe zizithuba.

sqr 2

okanye kanje:

sqr -number 2

Ngenxa yendlela iingxoxo ezigqithiswa ngayo, umsebenzi ngokwawo ngamanye amaxesha ufuna ukufakwa kwizibiyeli:

function test_func ($n) {}
test_func -eq $null     # функция Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π»Π°ΡΡŒ
(test_func) -eq $null   # Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выраТСния β€” $true

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Xa uchaza umsebenzi, unganika amaxabiso angagqibekanga kwiingxoxo:

function func ($arg = value) {
         #Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
}

Kukho enye i-syntax yokuchaza iingxoxo zomsebenzi, ukongeza, iiparameters zinokufundwa kumbhobho - konke oku kuya kuba luncedo kwinqaku elilandelayo, xa sijonga iimodyuli ezithunyelwa ngaphandle kunye nokwenza ezethu i-cmdlets.

Uqhubekeko lwempazamo

I-PowerShell ineZama...Bamba...Ekugqibeleni indlela yokusingatha iimeko ezingaqhelekanga. Ibhloko yeZama iqulethe ikhowudi apho impazamo inokuthi yenzeke, kwaye ibhloko yokubamba iqulethe isibambi sayo. Ukuba bekungekho mpazamo, ayiphunyezwa. Ibhloko yokuGqibela iphunyezwa emva kwebhloko yeZama, nokuba kwenzeke ntoni na impazamo, kwaye kunokubakho iibhloko ezininzi zokubamba kwiindidi ezahlukeneyo zeemeko. Okungaphandle ngokwako kubhalwe kuguquguquko olungachazwanga olungachazwanga ($_) kwaye lunokufunyanwa lula. Kulo mzekelo ungezantsi, sisebenzisa ukhuseleko ekungeneni ixabiso elingasebenziyo:

try {

        [int]$test = Read-Host "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число"
        100 / $test

} catch {

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

}

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

Oku kuqukumbela uphononongo lweziseko zenkqubo kulwimi lwePowerShell. Kumanqaku alandelayo, siya kufunda ngokubanzi ngokusebenza ngokuguquguqukayo kweentlobo ezahlukeneyo, ukuqokelela, ukubonakaliswa rhoqo, ukudala imisebenzi, iimodyuli kunye ne-cmdlets yesiko, kunye neprogram ejoliswe kwizinto.

Yintoni iWindows PowerShell kwaye ityiwa ngantoni? Icandelo 2: Intshayelelo yolwimi lwenkqubo

umthombo: www.habr.com

Yongeza izimvo