„PowerShell“ parametras: sintaksė, tipai, atributai, argumentai ir pavyzdžiai

2021 m. birželio 15 d 16760 m Peržiūros „PowerShell“ parametras: sintaksė, tipai, atributai, argumentai ir pavyzdžiai

„PowerShell“ scenarijų kūrėjai naudoja „Powershell Param“ bloką, norėdami pridėti parametrų prie išplėstinių funkcijų. Kiekvienas, vykdantis funkciją, gali pasiekti parametrus, pridėtus naudojant „PowerShell Param“.





Be to, neskaitant parametrų, pridedamų prie funkcijos su parametrų bloku, „Windows PowerShell“ automatiškai prideda bendruosius parametrus .



Šiame vadove aprašoma Powershell Param sintaksė, Powershell parametrų tipai, jų atributai ir argumentai. Jame taip pat pateikiami keli pavyzdžiai, kaip naudoti Param bloką norint pridėti parametrus prie scenarijaus ar funkcijos.

Naršykite pranešimų temas



„PowerShell“ parametrų bloko sintaksė

„PowerShell“ parametrų bloko sintaksė

„PowerShell Param“ sintaksė yra…



|_+_|

Norėdami pridėti parametrą prie afunction , pradėkite nuo žodžio sustabdyti , po kurio seka parametrų blokas, (). Čia yra paprasta param bloko forma…

|_+_| The CmdletBinding atributas yra neprivalomas ir yra vienintelis atributas, apibrėžtas už parametrų bloko ribų. Daugiau apie tai vėliau vadove

Parametrų bloke – param () – apibrėžiate parametrų atributus ir jų argumentus. Be to, parametro atributas yra įtrauktas į [()] bloką.



Aukščiau esančiame sintaksės kode paryškinau visus parametrų argumentus. Parametrų argumentų yra daug daugiau – sintaksėje esantys yra tik iliustravimo tikslais ir jokiu būdu nėra baigtiniai.

Parametrų bloke nustatysite parametrų argumentus, atskirtus kableliais. „PowerShell Param“ atributo pavyzdys yra parametras atributas.



Be to, param argumento pavyzdys yra privalomas argumentas. Kitas param argumento pavyzdys yra ParameterSetName .

Galiausiai nustatysite parametro pavadinimą. Be to, taip pat nurodysite parametro duomenų tipą.

Kitame skyriuje aptarsiu įprastus PowerShell parametrų tipus. Tada trečioje dalyje aprašomi bendrieji parametrų atributai ir jų argumentai.

Galiausiai paskutinėje šio vadovo dalyje pateiksiu realų „SysAdmin“ „PowerShell“ parametro pavyzdį. Skyriuje taip pat bus pateikti pavyzdžiai, kaip naudoti parametrų bloką išplėstinėje funkcijoje.

„PowerShell“ parametrų tipai

„PowerShell“ parametrų parametrų tipai

Dažniausi parametrų tipai, kuriuos galite nustatyti, yra styga arba jungiklis parametrus. Be to, taip pat galite apibrėžti tarpt , bool , DataLaikas arba char parametrų tipai.

Šiame skyriuje paaiškinsiu kai kuriuos iš šių parametrų tipų. Taip pat pateiksiu keletą pavyzdžių, kaip juos apibrėžti parametrų bloke.

„PowerShell“ parametras Styga Parametras

Kai kuriate PowerShell parametrus, tikėtina, kad sukursite a styga parametras. A styga parametras priima bet kokią eilutės reikšmę.

„Windows PowerShell“ eilutė gali būti skaičiai, žodžiai arba simboliai. Tiksliau, viskas, ką deklaruojate dviguboje arba vienguboje kabutėje, yra eilutė.

„PowerShell“ eilutės objekto tipas yra Sistema.Styga .

Norėdami paskelbti PowerShell parametrą kaip eilutės parametrą, prieš parametro pavadinimą įtraukite žodį styga [] skliausteliuose. Štai pavyzdys…

|_+_|

„PowerShell“ parametras tarpt Parametras

An tarpt duomenų tipas yra 32 bitų sveikasis skaičius. Anglų kalba an tarpt yra skaičius, pavyzdžiui, 1, 2 arba 3.

Skirtingai nuo a styga parametro duomenų tipas, kuris gali priimti bet kokio tipo duomenis, an tarpt parametras yra labai griežtas.

Jei apibrėžiate an tarpt parametras, parametras gali priimti tik skaičius. Be to, jei įvesite žodžius kaip reikšmę tarpt parametrą, PowerShell parodys klaidos pranešimą.

Prieš parodydamas, kaip apibrėžti „PowerShell“ parametrą tarpt parametras, čia yra bendras pavyzdys, kaip apibrėžti int duomenų tipą…

|_+_|

Jei paleisiu kodą PowerShell, jis grįš 123 .

„PowerShell Param int“ parametras

Priešingai, jei pakeisiu 123, tai yra int, „PowerShell“ išmes klaidos pranešimą.

|_+_|

Dabar, kai turėjote tarpt duomenų tipo strigčių kursas, kad būtų sukurtas „PowerShell“ parametras tarpt parametras vadinamas numeriu, čia yra kodas...

|_+_|

Tai privers jūsų scenarijaus ar funkcijos naudotojus pateikti tinkamo tipo duomenis.

„PowerShell“ parametras DataLaikas Parametras

Kaip an tarpt parametras, a DataLaikas parametras taip pat labai nustato įvesties tipą, kurį jis priima. Kaip rodo pavadinimas, DataLaikas parametras priims tik datos ir laiko formato įvestis.

Jei norite apibrėžti PowerShell parametrą, kuris priims tik datas, naudokite toliau pateiktą pavyzdinį kodą...

|_+_|

Šiame pavyzdyje Įveskite datą yra parametro pavadinimas. Be to, DataLaikas apibrėžia duomenų tipą.

„PowerShell“ parametras Jungiklis Parametras

Pirmuosiuose trijuose šio skyriaus poskyriuose aptariau PowerShell parametrų tipus, kuriems reikalinga vartotojo įvestis.

Tačiau yra „PowerShell“ parametro tipas, kuriam nereikia vartotojo įvesties. Skirtingai nuo kitų tipų parametrų, a jungiklis parametras nereikalauja vartotojo įvesties.

Tai, kaip jūs apibrėžiate a jungiklis parametras yra panašus į kitų tipų parametrų apibrėžimą. Tačiau vietoj jungiklis , tarpt , arba data ir laikas , vartokite žodį jungiklis .

Pavyzdžiui, norint apibrėžti „PowerShell“ parametrą Jungiklis parametras, Eksportuoti CSV , naudokite žemiau esantį kodą…

|_+_|

Galiausiai, šiame skyriuje jums gali kilti klausimas apie taikymą jungiklis parametrus. Pagalvokite apie „PowerShell“ scenarijų arba funkciją, kuri gali rodyti rezultatus „Powershell“ konsolėje.

Taip pat galite vartotojui suteikti galimybę eksportuoti rezultatą į tekstinį failą arba CSV failą.

Vienas iš būdų koduoti funkciją yra sukurti 3 jungiklio parametrus. Tada vartotojas gali pasirinkti vieną iš parametrų, atsižvelgdamas į tai, kaip nori, kad funkcija pateiktų rezultatą.

Šio tipo parametrams nereikia įvesti įvesties. Tiesiog pasirinkus parametrą, funkcija atitinkamai parodys išvestį.

Taip pat galite apibrėžti kitus „PowerShell“ parametrus su konkrečiais duomenų tipais. Norėdami sužinoti apie „PowerShell“ duomenų tipus, apsilankykite šioje nuorodoje – Kaip apibrėžti „PowerShell“ duomenų tipus .

„PowerShell“ parametrų parametrų atributai ir argumentai

„PowerShell“ parametrų parametrų atributai ir argumentai

Šio vadovo „PowerShell Param“ sintaksėje užsiminiau, kad „PowerShell“ parametras turi atributų. Be to, taip pat atkreipiau dėmesį, kad kiekvienas parametro atributas taip pat turi argumentų.

Šiame skyriuje aptarsiu parametrų atributus ir jų argumentus.

Norėdami paaiškinti parametrų atributus ir jų argumentus, remsiuosi „PowerShell“ parametro sintaksė, pristatyta pirmajame šio vadovo skyriuje.

|_+_|

„PowerShell“ parametras CmdletBinding Atributas

The CmdletBinding atributas paprastai nurodomas prieš parametrų bloką. Kai apibrėžiate CmdletBinding atributas, PowerShell atpažins scenarijų kaip išplėstinę funkciją.

Šio vadovo sintaksės skyriuje naudojau šį kodą kaip supaprastintą parametrų bloko versiją.

|_+_|

Šiame skyriuje daugiausia dėmesio skirsiu CmdletBinding Atributas kodo dalis. Štai kaip apibrėžti Atributas …

|_+_|

Kituose 3 poskyriuose aptarsiu kai kuriuos dažniausiai pasitaikančius argumentus, kuriuos galite apibrėžti CmdletBinding atributas.

Kad nekiltų abejonių, turite viską apibrėžti Argumentai () bloke Atributas . Be to, visus atributus PRIVALOTE atskirti kableliais (,), išskyrus paskutinį Argumentai viduje Atributas .

„PowerShell“ parametras DefaultParameterSetName Argumentas

Kai kuriate „PowerShell“ funkciją, joje gali būti keli parametrai, kuriuos vartotojas gali naudoti toje pačioje komandoje. Be to, ta pati „PowerShell“ funkcija gali turėti kitą parametrų rinkinį, kurį vartotojas gali naudoti kitoje komandoje.

Tačiau vartotojas negali maišyti pirmojo rinkinio parametrų su antrojo rinkinio parametrais.

Be to, funkcijų kūrėjas apibrėžia visus parametrus, kuriuos vartotojas gali naudoti toje pačioje komandoje su ParameterSetName argumentas. The ParameterSetName argumentas yra apibrėžtas parametro atribute (daugiau apie tai kitame skyriuje).

Turėdami skirtingus sugrupuotų parametrų rinkinius, turėsite skirtingus ParameterSetName s.

Su skirtingais ParameterSetName s nepaisydamas jūsų parametrų bloko, galite nuspręsti apibrėžti vieną iš ParameterSetName s kaip numatytasis. Čia jūs naudojate DefaultParameterSetName Argumentas.

The DefaultParameterSetName Argumentas yra apibrėžtas CmdletBinding atributų blokas. Štai pavyzdys…

|_+_|

Galiausiai, norėdamas išlaikyti „PowerShell“ parametrų bloko formatą, toliau pateiksiu parametrų bloką…

|_+_|

„PowerShell“ parametras SupportsShouldProcess Argumentas

Tai dar vienas argumentas, kurį galite apibrėžti CmdletBinding Atributas . Kaip DefaultParameterSetName Argumentas, SupportsShouldProcess Argumentas yra neprivalomas.

The SupportsShouldProcess Argumentas priduria Patvirtinti ir Kas, jeigu bendri funkcijos parametrai.

Norėdami pridėti šį argumentą, prie galo pridėkite kablelį (,). DefaultParameterSetName argumentas. Tada pridėkite eilutę - SupportsShouldProcess =$tiesa arba $false.

Įtraukus šį naują argumentą, CmdletBinding Atributas dabar atrodys taip...

|_+_|

„PowerShell“ parametras HelpURI Argumentas

Jei esate susipažinę su PowerShell Gaukite pagalbos Cmdlet, galbūt susidūrėte su juo Prisijungęs parametras. Kai bėgate Gaukite pagalbos su Prisijungęs parametrą, „PowerShell“ atidaro internetinį „Cmdlet“ pagalbos puslapį.

Pavyzdžiui, norėdami atidaryti „Out-File Cmdlet“ internetinį pagalbos puslapį, paleiskite toliau pateiktą komandą...

|_+_|

Šia komanda atidarytas puslapis yra apibrėžtas funkcijoje HelpURI Argumentas. Taigi, jei norite, kad vartotojai pasiektų jūsų funkcijos internetinį pagalbos puslapį, apibrėžkite HelpURI Argumentas.

Štai pavyzdys…

|_+_|

Dabar įtrauksiu šį paskutinį argumentą į CmdletBinding Atributas . Čia yra atnaujintas kodas…

|_+_|

„PowerShell“ parametras Parametras Atributas

„PowerShell“ parametre CmdletBinding Atributų poskyryje aptariau 3 argumentus, kuriuos galite įtraukti į CmdletBinding Atributų blokas.

Kaip matėte, CmdletBinding Atributų blokas yra vienintelis atributas, apibrėžtas už parametrų bloko ribų.

Šiame poskyryje sužinosite apie parametro atributą. Be to, taip pat sužinosite apie įprastus argumentus, kuriuos galite pridėti prie šio atributo.

Kaip galėjote padaryti išvadą iš šiame vadove jau naudojamų pavyzdžių, parametro atributas apibrėžia argumentus, kurie valdo PowerShell parametro parametro veikimą.

Parametrų atributą galite apibrėžti įtraukdami žodį Parametras, po kurio () skliausteliuose []. Štai pavyzdys…

|_+_|

Toliau PRIVALOTE apibrėžti visus parametro atributo argumentus () bloke.

Tolesniuose „PowerShell“ parametrų parametrų požymio poskyriuose pristatysiu ir paaiškinsiu įprastus argumentus, kuriuos galite apibrėžti parametro atribute.

„PowerShell“ parametras ParameterSetName Argumentas

Kai paaiškinau DefaultParameterSetName anksčiau šiame vadove supažindinau ParameterSetName Argumentas. Šį argumentą galite naudoti norėdami sugrupuoti arba sugrupuoti parametrus, kuriuos vartotojas gali vykdyti ta pačia komanda.

Pavyzdžiui, norint apibrėžti a ParameterSetName paskambino ParameterSetName1 , įveskite žemiau esantį kodą į Parametrų atributo () bloką.

|_+_|

Kai pristatysiu šį atnaujintą kodą, mano pavyzdinio kodo parametrų blokas dabar atrodys taip.

|_+_|

Jei sugrąžinsiu CmdletBinding atributas, mano pavyzdys PowerShell parametro kodas dabar atrodys taip…

|_+_|

„PowerShell“ parametras Privaloma Argumentas

Galite naudoti Privaloma argumentas, skirtas nustatyti, ar parametras yra būtinas, ar neprivalomas. The Privaloma argumentas priima $true arba $false reikšmę – $true reiškia reikalauti, $false, nebūtina.

Be to, Privaloma argumentas yra neprivalomas. Tačiau jei šis argumentas neapibrėžtas, parametras bus traktuojamas kaip neprivalomas.

Norėdami apibrėžti Privaloma Argumentas, pridėkite žemiau esantį kodą į parametrų atributų bloką…

|_+_|

Galiausiai, jei įtrauksiu Privaloma Argumento kodas prie mano PowerShell parametro kodo, dabar turėsiu…

|_+_|

„PowerShell“ parametras Padėtis Argumentas

The Padėtis Parametro atributo argumentas apibrėžia parametro padėtį. Reikšmė yra sveikasis skaičius, pradedant nuo 0 (nulio).

Nauda iš Padėtis Argumentas yra leisti vartotojams paleisti funkciją naudojant parametrų padėtį. Tiksliau, kai apibrėžiate Padėtis Argumentas, vartotojas gali įvesti kiekvieno parametro reikšmes komandinėje eilutėje nenurodydamas parametro.

Tada „PowerShell“ priskirs kiekvieną komandų eilutės reikšmę pagal parametro padėtį.

Pavyzdžiui, Get-ChildItem Cmdlet turi parametrą, vadinamą Kelias (su 0 padėtimi). Cmdlet taip pat turi kitą parametrą, Filtras (su 1 pozicija).

Pagal numatytuosius nustatymus, jei paleidžiu Get-ChildItem komandą, turiu įtraukti parametrų pavadinimus prieš pridėdamas jų reikšmes. Žiūrėkite žemiau esančią komandą…

|_+_|

Šioje komandoje iškviečiau parametrus ir nurodžiau jų reikšmes.

„PowerShell“ parametro pozicijos argumentas

Tačiau, kadangi žinau šių 2 parametrų padėtis, galiu pridėti vertes jų pozicijose, aiškiai neiškviesdamas parametrų. Tada pakeisiu savo komandą, kaip parodyta toliau...

|_+_|

Akivaizdu, kad tai sutaupo mano laiko! Tačiau jei žiūrite į ilgą „PowerShell“ kodą, tai gali sukelti painiavą.

Komanda duoda tą patį rezultatą „PowerShell“ ...

„PowerShell“ automatiškai priskirs pozicijų reikšmes parametrams pagal jas Padėtis Argumentas.

Toliau aprašoma, kaip apibrėžiate Padėtis Argumentas…

|_+_| Šiame pavyzdyje mano parametro padėtis yra 0 (nulis). Kai apibrėžiu kitą savo parametrą, jis bus 1 pozicijoje ir pan. Negalite turėti dviejų parametrų toje pačioje padėtyje. Vėliau vadove sužinosite, kaip pridėti vieną parametrą toje pačioje pozicijoje, bet skirtingus ParameterSetNames.

Dabar pridėsiu šį argumentą prie pavyzdinio kodo…

|_+_|

„PowerShell“ parametras ValueFromPipeline Argumentas

Kitas dažniausiai naudojamas parametrų papildymas yra ValueFromPipeline Argumentas. Kaip rodo pavadinimas, šis argumentas nustato, ar parametras priima reikšmes iš konvejerio.

Štai kaip jūs apibrėžiate šį argumentą…

|_+_|

Jei pridėsiu šį naują argumentą prie savo kodo, jis atrodys taip…

zte zmax pro twrp
|_+_|

Yra dar vienas argumentas, vadinamas ValueFromPipelineByPropertyName . Norėdami perskaityti apie šį argumentą, apsilankykite about_Functions_Advanced_Parameters .

„PowerShell“ parametras Pagalbos pranešimas Argumentas

Galite naudoti šį argumentą norėdami nurodyti pranešimą, kad naudotojai parodytų, kaip naudoti parametrą. Norėdami apibrėžti a Pagalbos pranešimas Argumentas dėl parametro, naudokite kodą, panašų į toliau pateiktą...

|_+_|

Ir štai dabar mano atnaujintas kodas...

|_+_|

Iki šiol šiame skyriuje aptariau 2 „PowerShell“ parametrų atributus – CmdletBinding ir Parametras . Be to, aš taip pat aptariau bendrus šių atributų argumentus.

Likusiuose 3 šio skyriaus poskyriuose išmokysiu 3 dažniau naudojamus „PowerShell“ parametrų atributus. Tačiau šie 3 atributai nereikalauja apibrėžti argumentų.

„PowerShell“ parametras Pseudonimas Atributas

Pseudonimo atributas naudojamas parametro slapyvardžiams nurodyti. Kaip jau spėjote, vietoj parametro galima naudoti PowerShell parametro slapyvardį.

Prieš parodydamas, kaip apibrėžti parametro slapyvardžio atributą, pirmiausia leiskite man parodyti, kaip kompiuteryje rasti visų Cmdlet ir funkcijų slapyvardžius.

Norėdami išvardyti visus Cmdlet ir Functions slapyvardžius, paleiskite toliau pateiktą komandą

|_+_|

Bus išvardyti visi slapyvardžiai…

PowerShell Param Alias ​​atributas

Pereinant prie Pseudonimas Atributas, skirtas apibrėžti PowerShell parametro parametrą, naudokite kodą, panašų į toliau pateiktą...

|_+_| Šiame pavyzdyje FP yra parametro slapyvardis.

Jei pridėsiu tai prie savo kodo, atnaujinta versija atrodys taip…

|_+_|

„PowerShell“ parametras Palaiko pakeitimo kortas Atributas

Šis parametro parametro atributas nustato, ar parametras priima pakaitos simbolius. Štai kaip apibrėžiate šį atributą…

|_+_|

„PowerShell“ parametras PatvirtintiNotNullOrEmpty Patvirtinimo atributas

Kaip ir dauguma atributų, jau aprašytų šiame vadove, šio atributo pavadinimas taip pat išduoda jį. Tai patvirtinimo atributas.

Kai apibrėžiate šį atributą, parametras NEPRIims nulinės ($null) reikšmės. Be to, jis nepriims tuščios () reikšmės.

Jei vartotojas įveda $null arba , funkcija išmes klaidą. Norėdami apibrėžti šį atributą, įveskite žemiau esantį kodą…

|_+_|

Galiausiai atnaujinsiu savo kodą su paskutiniais 2 atributais…

|_+_|

„PowerShell“ parametro parametro pavadinimas

Apibrėžę visus parametro atributus ir argumentus, turite pridėti parametro pavadinimą. „PowerShell“ parametro parametras apibrėžiamas kaip kintamasis – su dolerio ženklu ($), po kurio nurodomas parametro pavadinimas.

Taip pat pasirinktinai galite įvesti parametro duomenų tipą. 2 šio vadovo skyriuje aptariau skirtingus PowerShell parametrų tipus.

Štai kaip apibrėžti parametrą, kuris gali būti priimtas styga duomenų tipas.

|_+_|

Štai mano atnaujinto kodo pavyzdys…

|_+_|

Kaip apibrėžti vieną „PowerShell“ parametrą keliuose parametrų rinkiniuose

Kaip apibrėžti vieną „PowerShell“ parametrą keliuose parametrų rinkiniuose

Jei nesate naujokas „PowerShell“ funkcijų kodavimo, tikėtina, kad susidursite su pagunda vieną parametrą apibrėžti kelis kartus.

Viena iš priežasčių, kodėl galbūt norėsite turėti parametrą kelis kartus, yra tada, kai parametras naudojamas keliuose ParameterSetNames (keliuose parametrų rinkiniuose).

Tarkime, kad kuriate „PowerShell“ funkciją, kuri turi a Kelias parametras. Tačiau turite 2 ParameterSetNames, kuriems reikalingas parametras Path.

Dauguma žmonių, kurie pradeda kurti PowerShell scenarijus, greičiausiai nustatys toliau pateiktus parametrus...

|_+_|

Jei nustatysite parametrus, kaip parodyta aukščiau, gausite klaidos pranešimą. Norėdami patikrinti šią teoriją, nukopijuosiu kodą į PowerShell ISE.

Kaip apibrėžti vieną „PowerShell“ parametrą keliuose parametrų rinkiniuose

Taigi, kaip tai ištaisyti? Sprendimas yra apibrėžti 2 parametrų atributus ir jų argumentus, įskaitant jų ParameterSetNames.

Tada abiejų parametrų atributų pabaigoje apibrėžkite vieną parametro pavadinimą, kuris yra bendras abiem parametrų atributams. Ankstesniame pavyzdyje pašalinsiu pirmąjį parametro pavadinimą ir paliksiu paskutinį.

|_+_|

Dabar, jei nukopijuosiu šį kodą į PowerShell ISE, viskas bus gerai.

Šiame pavyzdyje atkreipkite dėmesį, kad abiejų parametrų atributų parametrų argumentai gali būti visiškai skirtingi. Be to, galite apibrėžti tiek parametrų atributų, kiek norite.

„PowerShell“ parametrų pavyzdžiai

„PowerShell“ parametrų pavyzdžiai

Šioje paskutinėje vadovo dalyje pateiksiu realų SysAdmin PowerShell parametro pavyzdį.

Rašydamas šį vadovą pradėjau kurti PowerShell scenarijų / funkciją, kad gaučiau aplanko dydį ir failų skaičių. Čia yra pagrindinė funkcijos dalis…

|_+_|

Kituose šio skyriaus poskyriuose paaiškinsiu skirtingus parametro elementus. Galiausiai paskutiniame skyriuje pristatomas funkcijų blokas ir į funkciją įtraukiamas parametrų blokas.

Kad būtų lengviau sekti kituose poskyriuose nurodyto kodo eilutes, atsisiųskite PowerShellParamExample.zip . Tada išpakuokite failą ir atidarykite .ps1 failą PowerShell ISE.

ParameterSetName PowerShell parametro pavyzdys

Mano PowerShell parametro pavyzdinis kodas turi tris ParameterSetNames – DisplayResult , EksportuotiTxt ir Eksportuoti CSV . Naudojau šiuos pavadinimus, kad būtų lengviau atpažinti, ką jie daro.

Šio skyriaus įžangoje minėjau, kad funkcija, kurią kuriu naudodama šį parametro kodą, parodys aplanko dydį ir failų skaičių kiekviename poaplanke nurodytame aplanke.

Todėl trys ParameterSetNames siūlo vartotojui galimybę rodyti rezultatus PowerShell konsolėje. Arba vartotojas turi galimybę eksportuoti rezultatą į tekstinį failą arba CSV failą.

Be to, kiekvienas ParameterSetName apibrėžkite visus parametrus, kuriuos vartotojas gali iškviesti viena komanda. Remiantis šia idėja, funkcija, kurią aš kuriu, turės tris komandų parinktis arba sintakses.

Šią mintį išplėsiu tolesniuose poskyriuose ir pavyzdžiuose.

CmdletBinding Atributas Ir DefaultParameterSetName Argumentų pavyzdžiai

Ankstesniuose šio vadovo skyriuose susidūrėte su CmdletBinding Atributas. Be to, jūs taip pat susidūrėte su vienu iš jos argumentų – DefaultParameterSetName .

The DefaultParameterSetName argumentas naudojamas norint apibrėžti numatytąjį parametrų rinkinį, kurį funkcija iškviečia. Šiame pavyzdyje numatytasis parametrų rinkinio pavadinimas yra DisplayResult .

The DefaultParameterSetName yra deklaruojamas kodo 1 eilutėje.

„PowerShell“ bandys naudoti parametrų rinkinį, nurodytą DefaultParameterSetName jei negali nustatyti, kurį parametrų rinkinį naudoti. Tačiau, jei nustatote privalomus parametrus, galite išvengti šios problemos.

Bet kokiu atveju, numatytųjų parametrų rinkinio pavadinimo paskelbimas nepakenks.

Aplanko kelias Eilutės parametro pavyzdys

Štai čia ir prasideda linksmybės! The Aplanko kelias parametras naudojamas įvesti aplanko kelią, funkcija gaus savo poaplankių dydį – ir suskaičiuos failų skaičių kiekviename poaplanke.

Tai yra eilutės parametras. Tai reiškia, kad ji priima bet kokią eilutę kaip įvestį.

Vienas jaudinantis bruožas Aplanko kelias parametras yra tai, kad jis yra bendras 3 parametrų rinkinių pavadinimams. Anksčiau šiame straipsnyje paaiškinau iššūkį, su kuriuo gali susidurti nauji „PowerShell“ scenarijaus kūrėjai.

Norėdami paskelbti Aplanko kelias parametrų trijuose parametrų rinkinių pavadinimuose, sukūriau tris parametrų atributus.

Pirmasis parametro atributas yra tarp 5 ir 11 eilučių. Be to, šis pirmasis parametro atributas turi kelis argumentus.

Tačiau norėčiau, kad atkreiptumėte ypatingą dėmesį į ParameterSetName argumentas - DisplayResult .

FolderPath eilutės parametro pavyzdys

Antra, tarp 12 ir 18 eilučių paskelbiau kitą parametro atributą su a ParameterSetName vadinamas argumentas EksportuotiTxt .

Galiausiai tarp 19 ir 25 eilučių paskelbiau trečiąjį parametro atributą su a ParameterSetName vadinamas argumentas Eksportuoti CSV .

FolderPath eilutės parametro pavyzdys

Be to, jei pastebėsite, skirtingai nei deklaruodamas 3 parametrų atributus, aš paskelbiau vieną Pseudonimas , ir PatvirtintiNotNullOrEmpty atributai. Šiuos atributus galima rasti 26 ir 27 eilutėse.

FolderPath eilutės parametro pavyzdys

Galiausiai, tiesiai po visais atributais ir jų argumentais, įtraukiau parametro pavadinimą - Aplanko kelias . Parametro pavadinimas yra 28 eilutėje.

FolderPath eilutės parametro pavyzdysPaskutiniame šio skyriaus poskyryje pamatysite, kaip funkcija rodo šį parametrą 3 komandų sintaksėse.

DisplayResult , EksportuotiTxt Ir Eksportuoti CSV Jungiklio parametro pavyzdys

Iš parametro kodo 29 eilutės deklaravau kitą parametrų atributų rinkinį ir jų argumentus.

Pirma, tarp 29 ir 37 eilučių deklaruoju parametrų atributus ir argumentus DisplayResult parametras.

Tada tarp 38 ir 47 eilučių paskelbiu kitą vadinamą parametrą EksportuotiTxt .

DisplayResult, ExportTxt ir ExportCSV jungiklio parametrų pavyzdys

Galiausiai tarp 48 ir 57 eilučių paskelbiau Eksportuoti CSV parametras.

Visi 3 parametrai, kuriuos aprašiau šiame skyriuje, yra visi Jungiklis parametrus. Kaip jau žinote, tai reiškia, kad parametrai nereikalauja vartotojo įvesties.

Kai vartotojas pasirenka bet kurį parametrą, funkcija pakeičia rezultatų rodymo būdą.

Kaip naudoti „PowerShell“ parametrą „PowerShell“ funkcijoje

Šiame poskyryje noriu įvesti PowerShell funkcijų bloką į savo pavyzdinį kodą.

„PowerShell“ funkcijų bloko sintaksė yra…

|_+_|

Paskutiniame šio vadovo pavyzdyje funkcijos sintaksėje esantį „PowerShell“ parametrų bloką pakeisiu savo parametro kodu iš paskutinio poskyrio. Be to, funkciją pakeisiu į Get-FolderSizeFileCount , funkcijos pavadinimas.

Galutinė funkcija dabar atrodys taip…

|_+_| Šiame pavyzdyje Begin {}, Process {} ir End {} blokai yra tušti.

Mano „PowerShell“ parametrų tikrinimas naudojant „PowerShell“ funkciją

Šioje paskutinėje dalyje išbandysiu parametrus funkcijos, kurią sukūriau paskutiniame skyriuje.

Jei norite patys išbandyti, kodą galite atsisiųsti paspaudę šią nuorodą – Get-FolderSizeFileCount.zip . Tada išpakuokite ZIP failą.

Kai išpakuosite failą, atidarykite „PowerShell“ ir paleiskite toliau pateiktą komandą:

|_+_| Pakeiskite į visą išpakuoto failo kelią.

Kai paleisite komandą, gausite įspėjamąjį pranešimą. Pranešimo eilutėje įveskite R ir paspauskite klaviatūros klavišą Enter.

Mano „PowerShell“ parametrų tikrinimas naudojant „PowerShell“ funkciją

Kai modulis bus importuotas, toje pačioje „PowerShell“ konsolėje paleiskite toliau pateiktą komandą:

|_+_|

Štai komandos rezultatas…

Noriu jums parodyti mano funkcijos pagalbos puslapio skiltį SINTAKSĖ. Aukščiau pateiktoje ekrano kopijoje galite paleisti komandą Get-FolderSizeFileCount 3 skirtingomis komandomis:

|_+_|

Pirmas dalykas, į kurį reikia atkreipti dėmesį, yra tai, kad trys sintaksės turi Aplanko kelias eilutės parametras. Jei perskaitysite šį vadovą, suprasite, kodėl.

Be to, pastebėsite, kad pirmoji sintaksė turi DisplayResult jungiklio parametras taip pat. Galiausiai antroje ir trečioje sintaksėse turite Eksportuoti CSV , ir EksportuotiTxt atitinkamai perjungimo parametrą.

Be to, Aplanko kelias , ir Eksportuoti CSV parametrus ir EksportuotiTxt parametrus atitinkamai antroje ir trečioje sintaksėse, jie taip pat turi ReportPath eilutės parametras. Šio parametro nepaminėjau, nes deklaracijos kodas yra panašus į Aplanko kelias kodas su nedideliais skirtumais. The ReportPath naudojamas norint nurodyti kelią, kuriuo funkcija išsaugos teksto ir CSV failų ataskaitas.

Štai viskas – išsamus „PowerShell“ parametrų vadovas! Tikiuosi, kad jums tai buvo naudinga?

Jei jums tai buvo naudinga, balsuokite Taip į Ar šis įrašas buvo naudingas klausimas.

Arba galite užduoti klausimą, palikti komentarą arba pateikti daugiau atsiliepimų naudodami formą Palikite atsakymą, esančią šio puslapio pabaigoje.

Galiausiai, norėdami sužinoti daugiau „PowerShell tech S“ zonų, apsilankykite mūsų „Windows PowerShell“ vadovo puslapyje. Taip pat jums gali būti labai naudingas mūsų puslapis „Work from Home“.

Literatūra ir tolesnis skaitymas

  1. Kaip apibrėžti „PowerShell“ duomenų tipus
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute