PowerShell parametri: sintakse, veidi, atribūti, argumenti un piemēri

2021. gada 15. jūnijs 16760 Skati PowerShell parametri: sintakse, veidi, atribūti, argumenti un piemēri

PowerShell skriptu izstrādātāji izmanto Powershell Param bloku, lai pievienotu parametrus uzlabotajām funkcijām. Ikviens, kas izmanto funkciju, var piekļūt parametriem, kas pievienoti ar PowerShell Param.





Turklāt, izņemot parametrus, kas pievienoti funkcijai ar parametru bloku, Windows PowerShell automātiski pievieno kopīgos parametrus .



Šī rokasgrāmata aptver Powershell parametru sintakse, Powershell parametru veidus, to atribūtus un argumentus. Tajā ir arī daži piemēri, kā izmantot Param bloku, lai skriptam vai funkcijai pievienotu parametrus.

galaktikas 5. piezīme saknes verizon

Pārlūkojiet ziņu tēmas



PowerShell parametru bloka sintakse

PowerShell parametru bloka sintakse

PowerShell Param sintakse ir…



|_+_|

Lai funkcijai afunction pievienotu parametru, sāciet ar vārdu stop , kam seko parametru bloks, (). Šeit ir vienkārša parametru bloka forma…

|_+_| The CmdletBinding atribūts nav obligāts, un tas ir vienīgais atribūts, kas definēts ārpus parametru bloka. Vairāk par to vēlāk rokasgrāmatā

Parametru blokā – param () – tiks definēti parametru atribūti un to argumenti. Turklāt parametra atribūts ir iekļauts [()] blokā.



Iepriekš esošajā sintakses kodā es visus parametru argumentus esmu treknrakstā. Ir daudz vairāk parametru argumentu — tie, kas norādīti sintaksē, ir paredzēti tikai ilustratīviem nolūkiem un nekādā ziņā nav izsmeļoši.

Parametru blokā jūs definēsit parametru argumentus, atdalot tos ar komatiem. PowerShell Param atribūta piemērs ir parametrs atribūts.



Turklāt parametra argumenta piemērs ir obligāts arguments. Vēl viens argumenta param piemērs ir ParameterSetName .

Visbeidzot, jūs definēsit parametra nosaukumu. Turklāt jūs norādīsiet arī parametra datu tipu.

Nākamajā sadaļā es apspriedīšu izplatītākos PowerShell parametru veidus. Pēc tam trešajā sadaļā ir apskatīti parastie parametru atribūti un to argumenti.

Visbeidzot, šīs rokasgrāmatas pēdējā sadaļā es sniegšu reālu SysAdmin piemēru PowerShell parametram. Sadaļā tiks sniegti arī piemēri, kā izmantot parametru bloku uzlabotajā funkcijā.

PowerShell parametru veidi

PowerShell parametru parametru veidi

Visizplatītākie parametru veidi, kurus varat iestatīt, ir virkne vai slēdzis parametrus. Turklāt jūs varat arī definēt starpt , bool , Datums Laiks vai char parametru veidi.

Šajā sadaļā es izskaidrošu dažus no šiem parametru veidiem. Es arī sniegšu dažus piemērus, kā tos definēt parametru blokā.

PowerShell parametrs Stīga Parametrs

Kad veidojat PowerShell parametrus, iespējams, ka izveidosit a virkne parametrs. A virkne parametrs pieņem jebkuru virknes vērtību.

Programmā Windows PowerShell virkne var būt cipari, vārdi vai rakstzīmes. Konkrētāk, viss, ko deklarējat dubultpēdiņā vai vienpēdiņā, ir virkne.

Programmā PowerShell virknes objekta tips ir System.String .

Lai PowerShell parametru deklarētu kā virknes parametru, pirms parametra nosaukuma ievietojiet vārdu virkne iekavās. Šeit ir piemērs…

|_+_|

PowerShell parametrs starpt Parametrs

An starpt datu tips ir vesels skaitlis ar 32 bitu zīmi. Angļu valodā an starpt ir skaitlis, piemēram, 1, 2 vai 3.

Atšķirībā no a virkne parametru datu tips, kas var uzņemt jebkura veida datus, an starpt parametrs ir ļoti preskriptīvs.

Ja jūs definējat an starpt parametrs, parametrs var pieņemt tikai skaitļus. Turklāt, ja ievadāt vārdus kā vērtību starpt parametru, PowerShell parādīs kļūdas ziņojumu.

Pirms es parādīšu, kā definēt PowerShell parametru starpt parametrs, šeit ir vispārīgs piemērs, kā definēt int datu tipu…

|_+_|

Ja es palaižu kodu programmā PowerShell, tas atgriezīsies 123 .

PowerShell Param int Parametrs

Gluži pretēji, ja es nomainīšu 123 ar šo ir int, PowerShell parādīs kļūdas ziņojumu.

|_+_|

Tagad, kad jums ir bijusi starpt datu tipa avārijas kursu, lai izveidotu PowerShell parametru starpt parametru sauc par numuru, šeit ir kods…

|_+_|

Tas liks jūsu skripta vai funkcijas lietotājiem nodrošināt pareizo datu tipu.

PowerShell parametrs Datums Laiks Parametrs

Tāpat kā an starpt parametrs, a Datums Laiks parametrs arī ļoti nosaka ievades veidu, ko tas pieņem. Kā norāda nosaukums, Datums Laiks parametrs pieņems tikai datuma un laika formāta ievadi.

Ja vēlaties definēt PowerShell parametru, kas pieņems tikai datumus, izmantojiet tālāk norādīto koda paraugu…

|_+_|

Šajā piemērā EnterDate ir parametra nosaukums. Turklāt Datums Laiks nosaka datu tipu.

PowerShell parametrs Slēdzis Parametrs

Šīs sadaļas pirmajās trīs apakšsadaļās esmu apspriedis PowerShell parametru veidus, kuriem nepieciešama lietotāja ievade.

Tomēr ir PowerShell parametru tips, kuram lietotājam nav nepieciešama ievade. Atšķirībā no citiem parametru veidiem, a slēdzis parametram nav nepieciešama lietotāja ievade.

Veids, kā jūs definējat a slēdzis parametrs ir līdzīgs tam, kā jūs definējat cita veida parametrus. Tomēr vietā slēdzis , starpt , vai datums Laiks , izmantojiet vārdu slēdzis .

Piemēram, lai definētu PowerShell parametru Slēdzis parametrs, EksportētCSV , izmantojiet zemāk esošo kodu…

|_+_|

Visbeidzot, šai sadaļai jums var rasties jautājums par to, kā lietot slēdzis parametrus. Padomājiet par PowerShell skriptu vai funkciju, kas var parādīt rezultātus Powershell konsolē.

Varat arī dot lietotājam iespēju eksportēt rezultātu uz teksta failu vai CSV failu.

Viens veids, kā kodēt funkciju, ir izveidot 3 slēdža parametrus. Pēc tam lietotājs var izvēlēties vienu no parametriem atkarībā no tā, kā funkcija nodrošina rezultātu.

Šāda veida parametram lietotājam nav jāievada ievade. Vienkārši izvēloties parametru, funkcija attiecīgi parādīs izvadi.

Varat arī definēt citus PowerShell parametrus ar konkrētiem datu tipiem. Lai uzzinātu par PowerShell datu veidiem, apmeklējiet šo saiti - Kā definēt PowerShell datu tipus .

PowerShell parametru parametru atribūti un argumenti

PowerShell parametru parametru atribūti un argumenti

Šīs rokasgrāmatas PowerShell parametru sintaksē es norādīju, ka PowerShell parametram ir atribūti. Turklāt es arī norādīju, ka katram parametra atribūtam ir arī argumenti.

Šajā sadaļā es apspriedīšu parametru atribūtus un to argumentus.

Lai izskaidrotu parametru atribūtus un to argumentus, es atsaukšos uz PowerShell parametra sintaksi, kas ieviesta šīs rokasgrāmatas pirmajā sadaļā.

|_+_|

PowerShell parametrs CmdletBinding Atribūts

The CmdletBinding atribūts parasti tiek norādīts pirms parametru bloka. Kad jūs definējat CmdletBinding atribūts, PowerShell atpazīs skriptu kā papildu funkciju.

Šīs rokasgrāmatas sintakses sadaļā es izmantoju šo kodu kā vienkāršotu parametru bloka versiju.

|_+_|

Šajā sadaļā es koncentrēšos uz CmdletBinding Atribūts koda daļu. Lūk, kā definēt Atribūts …

|_+_|

Nākamajās 3 apakšsadaļās es apspriedīšu dažus izplatītākos argumentus, kurus varat definēt CmdletBinding atribūts.

Lai izvairītos no šaubām, jums ir jādefinē viss Argumenti bloka () ietvaros Atribūts . Turklāt visi atribūti OBLIGĀTI jāatdala ar komatu (,), izņemot pēdējo Argumenti ietvaros Atribūts .

PowerShell parametrs DefaultParameterSetName Arguments

Izstrādājot PowerShell funkciju, tajā var būt ietverti vairāki parametri, kurus lietotājs var izmantot vienā komandā. Turklāt tā pati PowerShell funkcija var saturēt citu parametru kopu, ko lietotājs var izmantot citā komandā.

Tomēr lietotājs nevar sajaukt parametrus pirmajā komplektā ar parametriem otrajā komplektā.

Turklāt funkciju izstrādātājs definē visus parametrus, ko lietotājs var izmantot vienā komandā ar ParameterSetName arguments. The ParameterSetName arguments ir definēts parametra atribūtā (vairāk par to nākamajā sadaļā).

Dažādas grupētu parametru kopas nozīmē, ka jums būs atšķirīgi ParameterSetName s.

Ar dažādiem ParameterSetName s nepakļaujas jūsu parametru blokam, varat izlemt definēt vienu no ParameterSetName s kā noklusējuma. Šeit jūs izmantojat DefaultParameterSetName Arguments.

The DefaultParameterSetName Arguments ir definēts ietvaros CmdletBinding atribūtu bloks. Šeit ir piemērs…

|_+_|

Visbeidzot, lai saglabātu mūsu PowerShell parametru bloka formātu, es atkārtoti ieviesīšu tālāk norādīto parametru bloku…

|_+_|

PowerShell parametrs SupportsShouldProcess Arguments

Šis ir vēl viens arguments, ko varat definēt CmdletBinding Atribūts . Kā DefaultParameterSetName Arguments, SupportsShouldProcess Arguments nav obligāts.

The SupportsShouldProcess Arguments piebilst Apstiprināt un Ko darīt, ja funkcijas kopējie parametri.

Lai pievienotu šo argumentu, beigās pievienojiet komatu (,). DefaultParameterSetName arguments. Pēc tam pievienojiet rindu - SupportsShouldProcess =$true vai $false.

Iekļaujot šo jauno argumentu, CmdletBinding Atribūts tagad izskatīsies šādi...

|_+_|

PowerShell parametrs HelpURI Arguments

Ja esat iepazinies ar PowerShell Iegūt palīdzību Cmdlet, iespējams, esat to saskāries Tiešsaistē parametrs. Kad tu skrien Iegūt palīdzību Ar Tiešsaistē parametru, PowerShell atver Cmdlet tiešsaistes palīdzības lapu.

Piemēram, lai atvērtu Out-File cmdlet tiešsaistes palīdzības lapu, palaidiet tālāk norādīto komandu...

|_+_|

Ar šo komandu atvērto lapu funkcijā definē HelpURI Arguments. Tātad, ja vēlaties, lai lietotāji piekļūtu jūsu funkcijas tiešsaistes palīdzības lapai, definējiet HelpURI Arguments.

Šeit ir piemērs…

|_+_|

Tagad es iekļaušu šo pēdējo argumentu CmdletBinding Atribūts . Šeit ir atjaunināts kods…

kā darbojas tiešo viļņu antena
|_+_|

PowerShell parametrs Parametrs Atribūts

PowerShell parametrā CmdletBinding Atribūtu apakšsadaļā es apspriedu 3 argumentus, kurus varat iekļaut CmdletBinding Atribūtu bloks.

Kā jūs redzējāt, CmdletBinding Atribūtu bloks ir vienīgais atribūts, kas definēts ārpus parametru bloka.

Šajā apakšsadaļā jūs uzzināsit par parametra atribūtu. Turklāt jūs uzzināsit arī par izplatītākajiem argumentiem, ko varat pievienot šim atribūtam.

Kā jūs, iespējams, secinājāt no šajā rokasgrāmatā jau izmantotajiem piemēriem, parametra atribūts definē argumentus, kas kontrolē PowerShell parametra parametra darbību.

Parametra atribūtu var definēt, [] blokā iekļaujot vārdu Parameter, kam seko () iekavas. Šeit ir piemērs…

|_+_|

Turpinot, jums OBLIGĀTI jādefinē visi parametra atribūta argumenti () blokā.

Nākamajās PowerShell parametru parametru sadaļas apakšsadaļās es iepazīstināšu un izskaidrošu parastos argumentus, kurus varat definēt parametru atribūtā.

PowerShell parametrs ParameterSetName Arguments

Kad es paskaidroju DefaultParameterSetName Iepriekš šajā rokasgrāmatā es iepazīstināju ParameterSetName Arguments. Varat izmantot šo argumentu, lai grupētu vai grupētu parametrus, kurus lietotājs var palaist vienā komandā.

Piemēram, lai definētu a ParameterSetName sauca ParameterSetName1 , ievadiet tālāk norādīto kodu blokā Parametra atribūts ().

|_+_|

Kad es ieviesīšu šo atjaunināto kodu, mana parauga koda parametru bloks tagad izskatīsies šādi.

|_+_|

Ja es atvedīšu atpakaļ CmdletBinding atribūts, mans PowerShell parametra koda paraugs tagad izskatīsies šādi…

|_+_|

PowerShell parametrs Obligāts Arguments

Jūs varat izmantot Obligāts arguments, lai noteiktu, vai parametrs ir obligāts vai neobligāts. The Obligāts arguments pieņem vērtību $true vai $false — $true nozīmē pieprasīt, $false, nav nepieciešams.

Turklāt, Obligāts arguments nav obligāts. Tomēr, ja šis arguments nav definēts, parametrs tiks uzskatīts par neobligātu.

Lai definētu Obligāts Arguments, pievienojiet zemāk esošo kodu parametru atribūtu blokam…

|_+_|

Visbeidzot, ja es iekļauju Obligāts Argumenta kods manam PowerShell parametra kodam, tagad man būs…

|_+_|

PowerShell parametrs Pozīcija Arguments

The Pozīcija Parametra atribūta arguments nosaka parametra pozīciju. Vērtība ir vesels skaitlis, sākot no 0 (nulles).

Ieguvums no Pozīcija Arguments ir ļaut lietotājiem palaist funkciju, izmantojot parametru pozīciju. Konkrēti, kad definējat Pozīcija Arguments, lietotājs var ievadīt vērtības katram parametram komandrindā, nenorādot parametru.

Pēc tam PowerShell komandrindā piešķirs katru vērtību atbilstoši parametra pozīcijai.

Piemēram, Get-ChildItem Cmdlet ir parametrs, ko sauc Ceļš (ar pozīciju 0). Cmdlet ir arī cits parametrs, Filtrs (ar 1. pozīciju).

Pēc noklusējuma, ja es palaižu Get-ChildItem komandu, man ir jāiekļauj parametru nosaukumi pirms to vērtību pievienošanas. Skatiet komandu zemāk…

|_+_|

Šajā komandā es izsaucu parametrus un pēc tam norādīju to vērtības.

PowerShell parametra pozīcijas arguments

Tomēr, tā kā es zinu šo 2 parametru pozīcijas, varu pievienot vērtības to pozīcijās, īpaši neizsaucot parametrus. Pēc tam es mainīšu savu komandu, kā parādīts zemāk…

|_+_|

Acīmredzot tas ietaupa man laiku! Tomēr, ja skatāties uz garu PowerShell kodu, tas var radīt zināmas neskaidrības.

Komanda dod tādu pašu rezultātu programmā PowerShell…

PowerShell automātiski piešķirs pozīcijās esošās vērtības parametriem, pamatojoties uz tiem Pozīcija Arguments.

Tālāk ir norādīts, kā jūs definējat Pozīcija Arguments…

|_+_| Šajā piemērā mana parametra pozīcija ir 0 (nulle). Kad es definēšu savu nākamo parametru, tas būs 1. pozīcijā un tā tālāk. Vienā pozīcijā nevar būt divi parametri. Vēlāk rokasgrāmatā jūs uzzināsit, kā pievienot vienu parametru tajā pašā pozīcijā, bet citā ParameterSetNames.

Tagad es pievienošu šo argumentu savam parauga kodam…

|_+_|

PowerShell parametrs ValueFromPipeline Arguments

Vēl viens bieži izmantots parametru papildinājums ir ValueFromPipeline Arguments. Kā norāda nosaukums, šis arguments nosaka, vai parametrs pieņem vērtības no konveijera.

Lūk, kā jūs definējat šo argumentu…

|_+_|

Ja es pievienošu savam kodam šo jauno argumentu, tas izskatīsies šādi…

|_+_|

Ir vēl viens arguments, ko sauc ValueFromPipelineByPropertyName . Lai lasītu par šo argumentu, apmeklējiet vietni about_Functions_Advanced_Parameters .

PowerShell parametrs Palīdzības ziņojums Arguments

Varat izmantot šo argumentu, lai norādītu ziņojumu, lai parādītu lietotājiem, kā lietot parametru. Lai definētu a Palīdzības ziņojums Parametra arguments, izmantojiet kodu, kas līdzīgs tālāk norādītajam...

|_+_|

Un šeit ir mans atjauninātais kods…

|_+_|

Līdz šim šajā sadaļā esmu apspriedis 2 PowerShell parametru atribūtus - CmdletBinding un Parametrs . Turklāt es apspriedu arī parastos argumentus, ko varat definēt šiem atribūtiem.

pierunāt HDMI izeju

Pārējās 3 šīs sadaļas apakšsadaļās es jums iemācīšu 3 biežāk lietotos PowerShell parametru atribūtus. Tomēr šiem 3 atribūtiem nav jādefinē argumenti.

PowerShell parametrs Alias Atribūts

Pseidonīmu atribūts tiek izmantots, lai norādītu parametra aizstājvārdus. Kā jūs, iespējams, uzminējāt, parametra vietā var izmantot PowerShell parametra aizstājvārdu.

Pirms es parādīšu, kā definēt aizstājvārda atribūtu parametram, ļaujiet man vispirms parādīt, kā datorā atrast visu cmdlet un funkciju aizstājvārdus.

Lai uzskaitītu visus Cmdlets un Functions aizstājvārdus, palaidiet tālāk norādīto komandu

|_+_|

Šeit tiks uzskaitīti visi aizstājvārdi…

PowerShell Param Alias ​​atribūts

Pārejot uz Alias Lai definētu atribūtu PowerShell parametra parametram, izmantojiet kodu, kas ir līdzīgs tālāk norādītajam...

|_+_| Šajā piemērā FP ir parametra aizstājvārds.

Ja es to pievienošu savam kodam, atjauninātā versija izskatīsies šādi…

|_+_|

PowerShell parametrs Atbalsta aizstājējzīmes Atribūts

Šis parametra parametra atribūts nosaka, vai parametrs pieņem aizstājējzīmes. Lūk, kā jūs definējat šo atribūtu…

|_+_|

PowerShell parametrs ValidateNotNullOrEmpty Validācijas atribūts

Tāpat kā lielākā daļa atribūtu, kas jau ir aprakstīti šajā rokasgrāmatā, arī šī atribūta nosaukums to parāda. Tas ir validācijas atribūts.

Kad jūs definējat šo atribūtu, parametrs NEPIEMĒS nulles ($null) vērtību. Turklāt tas nepieņems tukšu () vērtību.

Ja lietotājs ievada $null vai , funkcija radīs kļūdu. Lai definētu šo atribūtu, ievadiet tālāk norādīto kodu…

palielināt html5 bezsaistes krātuves vietu
|_+_|

Visbeidzot, es atjaunināšu savu kodu ar pēdējiem 2 atribūtiem…

|_+_|

PowerShell parametra parametra nosaukums

Kad esat definējis visus parametra atribūtus un argumentus, jums jāpievieno parametra nosaukums. PowerShell parametra parametrs tiek definēts kā mainīgais — ar dolāra zīmi ($), kam seko parametra nosaukums.

Varat arī pēc izvēles ievadīt parametra datu tipu. Šīs rokasgrāmatas 2. sadaļā es apspriedu dažādus PowerShell parametru veidus.

Lūk, kā jūs definējat parametru, ko var pieņemt virkne datu tips.

|_+_|

Šeit ir mans atjauninātā koda piemērs…

|_+_|

Kā definēt vienu PowerShell parametru vairākās parametru kopās

Kā definēt vienu PowerShell parametru vairākās parametru kopās

Ja esat iesācējs PowerShell funkciju kodēšanā, pastāv iespēja, ka jūs nonāksit kārdināšanā vienu parametru definēt vairākas reizes.

Viens no iemesliem, kāpēc parametrs ir jāizmanto vairākas reizes, ir tas, ka parametrs tiek izmantots vairākās ParameterSetNames (vairākas parametru kopās).

Lai vadītu šo māju, pieņemsim, ka jūs izstrādājat PowerShell funkciju, kurai ir a Ceļš parametrs. Tomēr jums ir 2 ParameterSetNames, kam nepieciešams parametrs Path.

Lielākā daļa cilvēku, kas ir jauni PowerShell skriptu lietošanā, visticamāk, definēs tālāk parādītos parametrus...

|_+_|

Ja definējat parametrus, kā parādīts iepriekš, jūs saņemsit kļūdas ziņojumu. Lai pārbaudītu šo teoriju, es kopēšu kodu uz PowerShell ISE.

Kā definēt vienu PowerShell parametru vairākās parametru kopās

Tātad, kā jūs to labojat? Risinājums ir definēt 2 parametru atribūtus un to argumentus, tostarp to ParameterSetNames.

Pēc tam abu parametru atribūtu beigās definējiet vienu parametra nosaukumu, kas ir kopīgs abiem parametru atribūtiem. Iepriekšējā piemērā es noņemšu pirmā parametra nosaukumu un atstāju pēdējo.

|_+_|

Tagad, ja es kopēšu šo kodu uz PowerShell ISE, viss būs kārtībā.

Šajā piemērā ņemiet vērā, ka parametru argumenti abiem parametru atribūtiem var būt pilnīgi atšķirīgi. Turklāt varat definēt tik daudz parametru atribūtu, cik vēlaties.

PowerShell parametru piemēri

PowerShell parametru piemēri

Šajā rokasgrāmatas pēdējā sadaļā es sniegšu reālu SysAdmin PowerShell parametra piemēru.

Rakstot šo rokasgrāmatu, es sāku izstrādāt PowerShell skriptu/funkciju, lai iegūtu mapes lielumu un failu skaitu. Šeit ir funkcijas parametra daļa…

|_+_|

Dažās šīs sadaļas nākamajās apakšsadaļās es izskaidrošu dažādus parametra elementus. Visbeidzot, pēdējā sadaļa ievada funkciju bloku un pievieno funkcijai parametru bloku.

Lai jums būtu viegli sekot koda rindiņām, kas norādītas nākamajās apakšsadaļās, lejupielādējiet PowerShellParamExample.zip. Pēc tam izsaiņojiet failu un atveriet .ps1 failu programmā PowerShell ISE.

ParameterSetName PowerShell parametra piemērs

Manam PowerShell parametra piemēra kodam ir trīs ParameterSetNames — DisplayResult , EksportētTxt un EksportētCSV . Es izmantoju šos nosaukumus, lai būtu viegli noteikt, ko viņi dara.

Šīs sadaļas ievadā es minēju, ka funkcija, kuru veidoju ar šo parametru kodu, parādīs mapes lielumu un failu skaitu katrai apakšmapei noteiktā mapē.

Tāpēc trīs ParameterSetNames piedāvā lietotājam iespēju parādīt rezultātus PowerShell konsolē. Lietotājam ir arī iespēja eksportēt rezultātu uz teksta failu vai CSV failu.

Turklāt katrs ParameterSetName definējiet visus parametrus, kurus lietotājs var izsaukt vienā komandā. Pamatojoties uz šo ideju, funkcijai, kuru veidoju, būs trīs komandu opcijas vai sintakses.

Es izvērsīšu šo ideju turpmākajās apakšnodaļās un piemēros.

CmdletBinding Atribūts Un DefaultParameterSetName Argumentu piemēri

Šīs rokasgrāmatas iepriekšējās sadaļās jūs saskārāties ar CmdletBinding Atribūts. Turklāt jūs arī saskārāties ar vienu no tās argumentiem - DefaultParameterSetName .

The DefaultParameterSetName arguments tiek izmantots, lai definētu noklusējuma parametru kopu, ko funkcija izsauc. Šajā piemērā noklusējuma parametru kopas nosaukums ir DisplayResult .

The DefaultParameterSetName ir deklarēts koda 1. rindā.

PowerShell mēģinās izmantot parametru kopu, ko deklarējusi DefaultParameterSetName ja nevar noteikt, kuru parametru kopu izmantot. Tomēr, ja iestatāt obligātos parametrus, jūs varat izvairīties no šīs problēmas.

Jebkurā gadījumā noklusējuma parametru kopas nosaukuma deklarēšana nekaitēs.

FolderPath Virknes parametru piemērs

Šeit sākas jautrība! The FolderPath parametrs tiek izmantots, lai ievadītu mapes ceļu, funkcija iegūs savu apakšmapju lielumu un saskaitīs failu skaitu katrā apakšmapē.

Šis ir virknes parametrs. Tas nozīmē, ka tā pieņem jebkuru virkni kā ievadi.

Viena aizraujoša iezīme FolderPath parametrs ir tāds, ka tas ir kopīgs 3 parametru kopu nosaukumiem. Iepriekš šajā rakstā es paskaidroju izaicinājumu, ar kuru šajā situācijā var saskarties jaunie PowerShell skriptu izstrādātāji.

Lai deklarētu FolderPath parametru trīs parametru kopu nosaukumos, es izveidoju trīs parametru atribūtus.

Pirmā parametra atribūts atrodas starp 5. un 11. rindu. Turklāt šim pirmajam parametra atribūtam ir vairāki argumenti.

Tomēr es vēlētos, lai jūs pievērstu īpašu uzmanību ParameterSetName arguments - DisplayResult .

FolderPath virknes parametra piemērs

Otrkārt, starp 12. un 18. rindiņām es deklarēju citu parametra atribūtu ar a ParameterSetName sauc arguments EksportētTxt .

Visbeidzot, starp 19. un 25. rindiņām es deklarēju trešo parametra atribūtu ar a ParameterSetName sauc arguments EksportētCSV .

FolderPath virknes parametra piemērs

Turklāt, ja pamanāt, atšķirībā no 3 parametru atribūtu deklarēšanas es deklarēju vienu Alias , un ValidateNotNullOrEmpty atribūti. Šos atribūtus var atrast 26. un 27. rindā.

FolderPath virknes parametra piemērs

Visbeidzot, tieši zem visiem atribūtiem un to argumentiem es iekļāvu parametra nosaukumu - FolderPath . Parametra nosaukums ir 28. rindā.

FolderPath virknes parametra piemērsŠīs sadaļas pēdējā apakšsadaļā jūs redzēsiet, kā funkcija parāda šo parametru 3 komandu sintaksēs.

DisplayResult , EksportētTxt Un EksportētCSV Slēdža parametra piemērs

No parametra koda 29. rindiņas es deklarēju citu parametru atribūtu kopu un to argumentus.

Pirmkārt, starp 29. un 37. rindiņām es deklarēju parametru atribūtus un argumentus DisplayResult parametrs.

Pēc tam starp 38. un 47. rindiņām es paziņoju citu parametru, ko sauc EksportētTxt .

DisplayResult, ExportTxt un ExportCSV slēdža parametru piemērs

Visbeidzot, starp 48. un 57. rindu es paziņoju EksportētCSV parametrs.

Visi 3 parametri, kurus esmu aprakstījis šajā sadaļā, ir visi Slēdzis parametrus. Kā jūs jau zināt, tas nozīmē, ka parametriem lietotājam nav nepieciešama nekāda ievade.

tādas lietotnes kā procreate for Windows

Kad lietotājs atlasa kādu no parametriem, funkcija maina rezultātu parādīšanas veidu.

Kā lietot PowerShell parametru PowerShell funkcijā

Šajā apakšsadaļā es vēlos savā paraugkodā ieviest PowerShell funkciju bloku.

PowerShell funkciju bloka sintakse ir…

|_+_|

Pēdējā šīs rokasgrāmatas piemērā es aizstāšu PowerShell parametru bloku funkcijas sintaksē ar savu parametru kodu no pēdējās apakšsadaļas. Turklāt es aizstāšu funkciju ar Get-FolderSizeFileCount , funkcijas nosaukums.

Pēdējā funkcija tagad izskatīsies šādi…

|_+_| Šajā piemērā bloki Begin {}, Process {} un End {} ir tukši.

Manu PowerShell parametru pārbaude PowerShell funkcijā

Šajā pēdējā sadaļā es pārbaudīšu parametrus funkcijā, kuru izveidoju pēdējā sadaļā.

Ja vēlaties to pārbaudīt pats, varat lejupielādēt kodu, noklikšķinot uz šīs saites – Get-FolderSizeFileCount.zip. Pēc tam izpakojiet zip failu.

Kad esat izsaiņojis failu, atveriet PowerShell un palaidiet tālāk norādīto komandu:

|_+_| Mainiet uz pilnu ceļu uz atarhivēto failu.

Palaižot komandu, jūs saņemsit brīdinājuma ziņojumu. Ziņojuma uzvednē ievadiet R un nospiediet tastatūras taustiņu Enter.

Manu PowerShell parametru pārbaude PowerShell funkcijā

Kad modulis ir importēts, tajā pašā PowerShell konsolē palaidiet tālāk norādīto komandu:

|_+_|

Šeit ir komandas rezultāts…

Tas, ko es vēlos jums parādīt, ir manas funkcijas palīdzības lapas sadaļa SINTAKSE. Iepriekš redzamajā ekrānuzņēmumā komandu Get-FolderSizeFileCount varat palaist 3 dažādās komandās:

|_+_|

Vispirms jāatzīmē, ka trim sintaksēm ir FolderPath virknes parametrs. Ja izlasīsit šo rokasgrāmatu, jūs sapratīsit, kāpēc.

Turklāt jūs ievērosiet, ka pirmajā sintakse ir DisplayResult arī slēdža parametrs. Visbeidzot, otrajā un trešajā sintaksē jums ir EksportētCSV , un EksportētTxt attiecīgi slēdža parametru.

Papildus tam FolderPath , un EksportētCSV parametri un EksportētTxt parametrus attiecīgi otrajā un trešajā sintakse, tiem ir arī ReportPath virknes parametrs. Es nepieminēju šo parametru, jo deklarācijas kods ir līdzīgs FolderPath kodu, ar dažām nelielām atšķirībām. The ReportPath tiek izmantots, lai norādītu ceļu, kurā funkcija saglabās teksta un CSV failu atskaites.

Tas ir viss — visaptverošs ceļvedis par PowerShell parametriem! Es ceru, ka jums tas noderēja?

Ja jums tas šķita noderīgi, lūdzu, balsojiet Jā uz Vai šī ziņa bija noderīgs jautājums tālāk.

Varat arī uzdot jautājumu, atstāt komentāru vai sniegt papildu atsauksmes, izmantojot veidlapu Atstājiet atbildi, kas atrodas šīs lapas beigās.

Visbeidzot, lai iegūtu vairāk PowerShell tehnoloģiju S zonu, apmeklējiet mūsu Windows PowerShell pamācību lapu. Iespējams, jums ļoti noderēs arī mūsu lapa Work from Home.

Atsauces un turpmākā literatūra

  1. Kā definēt PowerShell datu tipus
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute