- 10/27/2020
- 20 minutes to read
-
- S
- s
- s
- c
- g
Short description
Explains how to add parameters to advanced functions.,
Pitkä kuvaus
Voit lisätä parametrit, kehittyneitä toimintoja, jotka voit kirjoittaa, ja useparameter ominaisuuksia ja argumentteja rajoittaa parametrien arvot, että functionusers lähetä parametri.
parametrit, jotka voit lisätä toiminto ovat käytettävissä käyttäjien lisäksi yhteisiä parametreja, jotka PowerShell lisää automaattisesti kaikki cmdlets andadvanced toimintoja. Lisätietoja PowerShell yhteisparametrit, katso about_commonparametrit.
alkaa Powershellissa 3.,0, voit käyttää splatting kanssa @Args
edustaaparametrit komennossa. Splatting on voimassa yksinkertainen ja advancedfunctions. Lisätietoja, katso about_Functions andabout_Splatting.
Tyyppi muuntaminen parametrin arvot
Kun annat jouset argumentteina parametrit, jotka odottavat differenttype, PowerShell epäsuorasti muuntaa jouset parametri kohde-tyyppi.Advanced toiminnot suorittaa kulttuuri-invariant jäsentäminen parametrin arvot.
sen sijaan, kulttuuri-herkkä muuntaminen suoritetaan aikana parameterbinding varten koottu cmdlets.,
tässä esimerkissä luodaan cmdlet-komentoa ja käsikirjoitus toiminto, joka ottaa parametri. Nykyinen kulttuuri muutetaan käyttämään saksalaisia asetuksia.Parametrille on annettu saksankielinen päivämäärä.
Dienstag, 19. Juni 2018 00:00:00
Kuten edellä, cmdlets käyttää kulttuuri-herkkä jäsentämiseen muuntaa merkkijono.
edistyneet funktiot käyttävät culture-invariant jäsennystä, joka johtaa seuraavaan virheeseen.
parametrit
Staattinen parametrit ovat muuttujia, jotka ovat aina saatavilla toiminta.,Useimmat PowerShell cmdlets ja skriptit parametrit ovat staattisia parametreja.
seuraava esimerkki näyttää, ilmoitus Tietokonenimi parameterthat on seuraavat ominaisuudet:
- Se on pakollinen (pakollinen).
- se ottaa panoksen putkesta.
- se ottaa joukon merkkijonoja syötteenä.
Param( ] $ComputerName)
Ominaisuudet parametrit
Tässä jaksossa kuvataan ominaisuuksia, jotka voit lisätä funktion parametrit.
kaikki attribuutit ovat valinnaisia., Kuitenkin, jos jätät CmdletBindingattribute, sitten on tunnustettava advanced funktio, funktion on sulkeuduttava parametrin attribuutti.
jokaiseen parametrijulistukseen voi lisätä yhden tai useamman attribuutin. Ei ole mitään rajaa attribuuttien määrä, että voit lisätä parametrinvalinta.
Parametri-määrite
– Parametrin ominaisuus on tapana julistaa ominaisuudet functionparameters.
– Parametrin ominaisuus on valinnainen, ja voit jättää se jos mikään theparameters oman toiminnot tarvitsevat ominaisuudet., Mutta, olla tunnustettu anadvanced-toiminto, pikemminkin kuin yksinkertainen funktio, toiminto on joko CmdletBinding ominaisuus tai Parametrin ominaisuus, tai molemmat.
– Parametrin ominaisuus on argumentteja, jotka määrittelevät ominaisuudet ofthe parametri, kuten onko parametri pakollinen vai valinnainen.
Käytä seuraavaa syntaksia julistaa Parametrin ominaisuus, väite ja argumentti arvo. Suluissa, jotka liittävät argumentin ja sen arvomaailmaan, on noudatettava parametria, jossa ei ole välitilaa.,
Param( $ParameterName)
käytä pilkkuja sulkeissa olevien argumenttien erottamiseen. Käytä followingsyntax julistaa kaksi argumenttia parametrin attribuutti.
Param( )
boolean argumentti tyyppisiä Parametrin ominaisuus oletuksena Falsewhen jättää pois Parametrin ominaisuus. Aseta argumenttiarvo$true
tai luettele argumentti vain nimeltä. Esimerkiksi seurattavatparametri-attribuutit ovat ekvivalentteja.,
Jos käytät Parametrin ominaisuus ilman perusteluja, vaihtoehtona tousing, että CmdletBinding ominaisuus, suluissa, että seuraa theattribute nimi ovat edelleen tarpeen.
Param( $ParameterName)
Pakollinen argumentti
Mandatory
argumentti osoittaa, että parametri on pakollinen. Jos tätä parametria ei ole määritelty, parametri on valinnainen.
seuraava esimerkki julistaa ComputerName-parametrin. Se käyttääMandatory
perustelu jotta parametri pakollinen.,
Param( ] $ComputerName)
Kannan perustelu
Position
argumentti määrittää, onko parametrin nimi on pakollinen, kun parametrina on käytetty komento. Kun parametri ilmoitus sisältääPosition
väite, että parametrin nimi voidaan jättää pois, ja PowerShellidentifies tuntemattoman parametrin arvo sen aseman, tai järjestyksessä, listof nimeämätön parametrien arvot komento.,
– Jos Position
väite ei ole määritetty, parametrin nimi, tai parametername alias tai lyhenne, on ennen parametrin arvo, kun theparameter on käytetty komento.
oletusarvoisesti kaikki funktioparametrit ovat positionaalisia. PowerShell antaa positionnumbers parametreille siinä järjestyksessä, jossa parametrit ilmoitetaan funktiossa. Voit poistaa tämän ominaisuuden, aseta arvo PositionalBinding
väite CmdletBinding määrite $False
., Position
argumentti on etusijalla arvo PositionalBinding
argumentti ofthe CmdletBinding ominaisuus. Lisätietoja, katso PositionalBinding
in about_Functions_CmdletBindingAttribute.
Position
– argumentin arvo määritellään kokonaislukuna. A positionvalue 0 on ensimmäinen asema komento, kantaa valueof 1 on toinen asema komento, ja niin edelleen.,
Jos funktiolla ei ole positioparametreja, PowerShell määrittää positiot kullekin parametrille sen mukaan, missä järjestyksessä parametrit ilmoitetaan.Parhaana käytäntönä älä kuitenkaan luota tähän tehtävään. Kun haluat parametrien olevan positionaalisia, käytä Position
– argumenttia.
seuraava esimerkki julistaa ComputerName-parametrin. Se käyttääPosition
– argumenttia, jonka arvo on 0. Seurauksena, kun -ComputerName
isomitted komento, sen arvo on oltava ensimmäinen tai vain nimeämätön parametervalue komento.,
Param( ] $ComputerName)
ParameterSetName perustelu
ParameterSetName
argumentti määrittää parametrin arvoksi, joka aparameter kuuluu. Jos parametreja ei ole määritetty, parametri kuuluu kaikilla parametri asetetaan määritelty toiminto. Siksi, olla ainutlaatuinen, eachparametri asettaa on oltava vähintään yksi parametri, joka ei ole jäsenenä muiden parametri asetettu.
Huomautus
cmdlet: n tai funktion osalta on 32 parametrisarjan raja.,
seuraava esimerkki julistaa Tietokonenimi parametri Computer
parametri määrittää, Käyttäjätunnus parametri User
parametri asettaa, ja seuraavassa esitetään parametri sekä parametri asetetaan.
Voit määrittää vain yksi ParameterSetName
arvo kunkin väitteen, ja vain yksiParameterSetName
peruste kunkin Parametrin ominaisuus. Jos haluat osoittaa, että aparametri esiintyy useammassa kuin yhdessä parametrijoukossa, lisää lisäparametrit.,
seuraava esimerkki nimenomaan lisää Yhteenveto parametriComputer
ja User
parametri asetetaan. Yhteenveto-parametri on valinnainen inthe Computer
parametri asettaa ja pakollinen User
parametri asettaa.
lisätietoja parametrisarjoista on kohdassa Parametrisarjat.
ValueFromPipeline perustelu
ValueFromPipeline
argumentti osoittaa, että parametri hyväksyy inputfrom putki kohde., Määritä tämä argumentti, jos funktio hyväksyy theentire-objektin, ei vain objektin omaisuutta.
seuraava esimerkki julistaa Tietokonenimi parametri, joka on mandatoryand hyväksyy esine, joka on siirtynyt toiminnon pipeline.
Param( ] $ComputerName)
ValueFromPipelineByPropertyName perustelu
ValueFromPipelineByPropertyName
argumentti osoittaa, että parameteraccepts panosta kiinteistön putkiston kohde. Objektin ominaisuudessa on sama nimi tai peitenimi kuin parametrissa.,
esimerkiksi, jos toiminto on Tietokonenimi parametri, ja pipedobject on Tietokonenimi omaisuuden arvo ComputerNameproperty on määritetty toiminto on Tietokonenimi parametri.
seuraava esimerkki julistaa Tietokonenimi parametri, joka on mandatoryand hyväksyy syötteen kohde on Tietokonenimi omaisuutta, joka on kulunut tothe toiminto läpi putken.,
Param( ] $ComputerName)
Huom.
kirjoitettu parametri, joka hyväksyy putki tulo (by Value
) tai(by PropertyName
) mahdollistaa käyttää viive-sitoa script korttelin theparameter.
delay-bind script block ajetaan automaattisesti duringparametrbinding. Tulos on sidottu parametriin. Viive bindingdoes ei toimi parametrit määritellään tyyppi ScriptBlock
taiSystem.Object
. Skriptilohko menee läpi ilman vetoamista.
delay-bind – skriptilohkoista voit lukea täältä about_Script_Blocks.md.,
ValueFromRemainingArguments perustelu
ValueFromRemainingArguments
argumentti osoittaa, että parametri acceptsall parametrin arvot komento, joita ei ole määritetty otherparameters toiminto.
seuraavassa esimerkissä ilmoitetaan pakollinen ja aRemaining-parametri, joka hyväksyy kaikki funktiolle toimitetut jäljellä olevat parametriarvot.
Found 2 elements0: one1: two
Huom.
Ennen PowerShell 6.2 ValueFromRemainingArguments kokoelma wasjoined kuin yhden yksikön alle indeksi 0.,
HelpMessage perustelu
HelpMessage
argumentti määrittää merkkijonon, joka sisältää lyhyen descriptionof parametria tai sen arvoa. PowerShell näyttää tämän viestin promptthat tulee näkyviin, kun pakollinen parametri arvo puuttuu komento. Tällä välineellä ei ole vaikutusta valinnaisiin parametreihin.
seuraava esimerkki vakuuttaa, pakollinen Tietokonenimi parametri ja ahelp viesti, joka kertoo odotettavissa parametrin arvo.,
Jos ei ole muita kommentti-pohjainen auttaa syntaxfor toiminto (esimerkiksi .SYNOPSIS
), niin tämä viesti osoittaa myös ylösGet-Help
lähtö.
Param( ] $ComputerName)
Alias-määrite
Alias-ominaisuus luodaan vaihtoehtoinen nimi-parametri.Ei ole mitään rajaa määrä peitenimiä, että voit määrittää parametrin.
seuraavassa esimerkissä on parametrijulistus, joka lisää CN-jamachinename-peitenimet pakolliseen ComputerName-parametriin.,
Param( ] $ComputerName)
SupportsWildcards määrite
SupportsWildcards ominaisuus on käyttää osoittamaan, että parameteraccepts jokeri-arvot. Seuraavassa esimerkissä esitetään parametrin ilmoittaminen pakolliselle Polkuparametrille, joka tukee jokerikorttien arvoja.
Param( ] $Path)
tämän ominaisuuden käyttäminen ei automaattisesti mahdollista jokerikorttitukea. Cmdletdeveloper on toteutettava koodi käsitellä wildcard syöttö. Wildcards-Tuki voi vaihdella taustalla olevan API: n tai PowerShell-palveluntarjoajan mukaan. Formore information, katso about_Wildcards.,
Parametri ja muuttuja validointi ominaisuudet
Validointi ominaisuuksia suoraan PowerShell-testi parametrien arvot, että userssubmit kun he soita lisäasetukset-toiminto. Jos parametriarvot eivät täyty, syntyy virhe eikä funktiota kutsuta. Parametrin validointia sovelletaan vain annettuun syötteeseen, eikä muita arvoja, kuten oletusarvoja, ole validoitu.
Voit myös käyttää validointi ominaisuuksia rajoittaa arvot, ettäkäyttäjät voivat määrittää muuttujia., Kun käytät tyyppimuunninta yhdessä avalidation-attribuutin kanssa, tyyppimuunnin on määriteltävä ennen attribuuttia.
$number = 7
AllowNull validointi ominaisuus
AllowNull ominaisuuden avulla arvo pakollinen parametri olla$null
. Seuraavassa esimerkissä ilmoitetaan hajautettava Tietokoneinfo-parametri, jolla voi olla nolla-arvo.
Param( $ComputerInfo)
Huom.
AllowNull ominaisuus ei toimi, jos tyyppi converter on asetettu tostring string tyyppi ei hyväksy null-arvo., Voit käyttää allowemptystring-ominaisuutta tähän skenaarioon.
AllowEmptyString validointi ominaisuus
AllowEmptyString ominaisuuden avulla arvo pakollinen parametri tobe tyhjä merkkijono (""
). Seuraavassa esimerkissä ilmoitetaan Computernameparametri, jolla voi olla tyhjä merkkijonoarvo.
Param( $ComputerName)
AllowEmptyCollection validointi ominaisuus
AllowEmptyCollection ominaisuuden avulla arvo mandatoryparameter olla tyhjä kokoelma @()
., Seuraavassa esimerkissä ilmoitetaan aComputerName-parametri, jolla voi olla tyhjä keräysarvo.
Param( ] $ComputerName)
ValidateCount validointi ominaisuus
ValidateCount attribuutti määrittää vähimmäis-ja enimmäismäärä ofparameter arvot parametri hyväksyy. PowerShell tuottaa virheen, jos määrä parametrin arvot komento, joka kutsuu toiminto on outsidethat alue.
seuraava parametri-ilmoitus luo Tietokonenimi parametri, joka yksi-viisi parametri-arvot.,
Param( ] $ComputerName)
ValidateLength validointi ominaisuus
ValidateLength attribuutti määrittää vähimmäis-ja enimmäismäärä ofcharacters parametri tai muuttuja-arvo. PowerShell tuottaa virheen, jos parametrille tai muuttujalle määritellyn arvon pituus on Alueen ulkopuolella.
seuraavassa esimerkissä jokaisella tietokoneen nimellä on oltava yhdestä kymmeneen merkkiä.
Param( ] $ComputerName)
seuraavassa esimerkissä muuttujan arvo $number
täytyy olla minimumof yhden merkin pituinen, ja enintään kymmenen merkkiä.,
$number = '01'
Huom.
tässä esimerkissä arvo 01
on kääritty puolilainausmerkkejä. TheValidateLength attribuutti ei hyväksy numeroa ilman käärittyjä kyselyjä.
ValidatePattern validointi ominaisuus
ValidatePattern attribuutti määrittelee säännöllisen lausekkeen, että’scompared parametrin tai muuttujan arvoa. PowerShell tuottaa virheen, jos arvo ei vastaa säännöllistä lauseketta kuvio.,
seuraavassa esimerkissä parametriarvossa on oltava nelinumeroinen luku, ja jokaisen numeron on oltava nollasta yhdeksään.
Param( ")] ] $ComputerName)
seuraavassa esimerkissä muuttujan arvo $number
täytyy olla täsmälleen afour-numeroinen luku, ja jokainen numero on numero nolla yhdeksän.
$")]$number = 1111
ValidateRange validointi ominaisuus
ValidateRange attribuutti määrittää numeerinen alue tai aValidateRangeKind enum arvo kunkin parametrin tai muuttujan arvoa.PowerShell tuottaa virheen, jos jokin arvo on tuon alueen ulkopuolella.,
Validaterangekindin enum mahdollistaa seuraavat arvot:
- positiivinen – luku suurempi kuin nolla.
- negatiivinen-luku alle nolla.
- Nonpositiivi-luku pienempi tai yhtä suuri kuin nolla.
- NonNegative-luku on suurempi tai yhtä suuri kuin nolla.
seuraavassa esimerkissä Yritysparametrin arvon on oltava nollasta kymmeneen.
Param( $Attempts)
seuraavassa esimerkissä muuttujan arvo $number
täytyy olla betweenzero ja kymmenen.,
$number = 5
seuraavassa esimerkissä muuttujan arvo $number
täytyy olla suurempi kuin nolla.
$number = 1
ValidateScript validointi ominaisuus
ValidateScript attribuutti määrittää komentosarjan, joka käytetään vahvistamaan aparameter tai muuttujan arvoa. PowerShell putket arvo käsikirjoitus, andgenerates virheen, jos skripti palauttaa $false
tai jos käsikirjoitus heittää lisäksi.,
Kun käytät ValidateScript ominaisuus, arvo, joka on validatedis kartoitettu $_
muuttuja. Voit käyttää $_
muuttuja viittaamaan thevalue kirjoitus.
seuraavassa esimerkissä EventDate-parametrin arvon on oltava suurempi tai yhtä suuri kuin nykyinen päivämäärä.
Param( $EventDate)
seuraavassa esimerkissä muuttujan arvo $date
saa olla suurempi kuin tai yhtä suuri kuin nykyinen päivämäärä ja aika.,
$date = (Get-Date)
Huom.
Jos käytät ValidateScript, et voi siirtää $null
arvo theparameter. Kun läpäiset nollan arvon ValidateScript ei voi vahvistaa sitä.
ValidateSet määrite
ValidateSet attribuutti määrittää joukko päteviä arvoja parameteror muuttuja, ja mahdollistaa välilehti loppuun. PowerShell tuottaa virheen, jos aparametri tai muuttuva arvo ei vastaa joukon arvoa. Seuraavassa esimerkissä Detail-parametrin arvo voi olla vain pieni, keskiarvo, orHigh.,
Param( ] $Detail)
seuraavassa esimerkissä muuttujan arvo $flavor
täytyy olla eitherChocolate, Mansikka tai Vanilja.
validointi tapahtuu aina, kun kyseinen muuttuja on osoitettu jopa thescriptin sisällä. Esimerkiksi, seuraavat tulokset virheen runtime:
Param( $Message)$Message = "bye"
Dynaaminen validateSet arvot
Voit käyttää Luokan dynaamisesti arvot ValidateSetat runtime., Seuraavassa esimerkissä kelvolliset arvot muuttujan$Sound
syntyy kautta Luokan nimeltä SoundNames, joka tarkistaa threefilesystem polkuja saatavilla ääni tiedostot:
luokka on sitten toteutettu dynaaminen ValidateSet valueas seuraavasti:
Param( )] $Sound)
ValidateNotNull validointi ominaisuus
ValidateNotNull attribuutti määrittää, että parametrin arvo voi olla$null
. PowerShell tuottaa virheen, jos parametrin arvo on $null
.,
ValidateNotNull ominaisuus on suunniteltu käytettäväksi, kun parametri isoptional ja tyyppi on määrittelemätön tai on tyyppi muunnin, joka voi’timplicitly muuntaa null-arvon, kuten objekti. Jos määrität tyypin, joka implisiittisesti muuntaa nollan arvon, kuten merkkijonon, null-arvo muunnetaan tyhjäksi merkkijonoksi myös käytettäessä Validatenotnullattribuuttia. Tämä skenaario käyttää ValidateNotNullOrEmpty
seuraavassa esimerkissä arvo ID-parametri voi olla $null
.,
Param( $ID)
ValidateNotNullOrEmpty validointi ominaisuus
ValidateNotNullOrEmpty attribuutti määrittää, että parametri valuecan voi olla $null
ja ei voi olla tyhjä merkkijono (""
). PowerShell tuottaa anerror, jos parametri on käytössä toiminto soittaa, mutta sen arvo on $null
, anempty string (""
), tai tyhjä jono @()
.,
Param( ] $UserName)
ValidateDrive validointi ominaisuus
ValidateDrive attribuutti määrittää, että parametrin arvo mustrepresent polku, että on viitaten saa ajaa vain. PowerShellgenerates virhe, jos parametrin arvo viittaa muihin asemiin kuin allowed. Reitin olemassaoloa itse asemaa lukuun ottamatta ei ole vahvistettu.
Jos käytät suhteellista polkua, nykyisen aseman on oltava sallitussa asemalistassa.,
Param( $Path)
ValidateUserDrive validointi ominaisuus
ValidateUserDrive attribuutti määrittää, että parametrin arvo mustrepresent polku, joka viittaa User
ajaa. PowerShell tuottaa anerrorin, jos polku viittaa eri asemaan. Validointi-attribuutti onlytests polun aseman osan olemassaololle.
Jos käytät suhteellista polkua, nykyisen aseman on oltava User
.,
Test-UserDrivePath: Cannot validate argument on parameter 'Path'. The pathargument drive C does not belong to the set of approved drives: User.Supply a path argument with an approved drive.
Test-UserDrivePath -Path 'User:\A_folder_that_does_not_exist'
Test-UserDrivePath: Cannot validate argument on parameter 'Path'. Cannotfind drive. A drive with the name 'User' does not exist.
Voit määrittää User
ajaa Vain Tarpeeksi Administration (JEA) sessionconfigurations. Esimerkiksi, luomme käyttäjän: ajaa.
New-PSDrive -Name 'User' -PSProvider FileSystem -Root $env:HOMEPATH
True
ValidateTrustedData validointi ominaisuus
Tämä ominaisuus lisättiin PowerShell 6.1.1.
tällä hetkellä attribuuttia käyttää sisäisesti PowerShell itse, eikä sitä ole tarkoitettu ulkoiseen käyttöön.,
Dynaamiset parametrit
Dynaamiset parametrit ovat parametreja cmdlet-toiminto, tai skripti, joka saatavilla vain tietyissä olosuhteissa.
esimerkiksi, useita provider cmdlets ovat parametrit, jotka ovat käytettävissä vain cmdlet-komentoa käytetään provider ajaa, tai tiettyä polku theprovider ajaa. Esimerkiksi Koodaus parametri on käytettävissäAdd-Content
, Get-Content
ja Set-Content
cmdlets vain silloin, kun se on käytetty ina-tiedosto järjestelmä ajaa.,
voit myös luoda parametrin, joka näkyy vain silloin, kun funktion komennossa käytetään toista parametria tai kun toisella parametrilla on tietty arvo.
dynaamiset parametrit voivat olla hyödyllisiä, mutta käyttää niitä vain tarvittaessa, koska niiden löytäminen voi olla käyttäjille vaikeaa. Löytää dynaaminen parametri, theuser on oltava provider polku, käytä ArgumentList parametriGet-Command
cmdlet-komentoa, tai käyttää Polku parametri Get-Help
.
Voit luoda dynaaminen parametri, funktion tai skriptin, käytä DynamicParam
avainsana.,
syntaksi on seuraava:
DynamicParam {<statement-list>}
statement list, käytä If
lausunto, jossa määritetään edellytykset, joiden parametri on käytettävissä toiminto.
Käyttö New-Object
cmdlet luoda aSystem.Hallinta.Automaatio.Runtedefinedparametri objekti edustamaanparametri ja täsmentää sen nimi.
asystemin luomiseen voi käyttääNew-Object
– komentoa.Hallinta.Automaatio.,ParameterAttribute vastustaa representattributes parametrin, kuten Pakollinen, Asema, orValueFromPipeline tai sen parametreja.
seuraavassa esimerkissä on näytefunktio, jossa on vakioparametrit niminimi ja polku, sekä valinnainen dynaaminen parametri nimeltä DP1. TheDP1 parametri on PSet1
parametri asettaa ja on tyyppi Int32
.,Se DP1 parametri on käytettävissä Get-Sample
toiminto vain silloin, kun thevalue Polun parametri alkaa HKLM:
, mikä osoittaa, että se on beingused HKEY_LOCAL_MACHINE
rekisterin asema.
Lisää tietoa, näkötimedefinedparametri.
Vaihtoparametrit
Vaihtoparametrit ovat parametrejä, joilla ei ole parametriarvoa. Ne ovat tehokkaita vain, kun niitä käytetään ja niillä on vain yksi vaikutus.
esimerkiksi PowerShellin NoProfile-parametri.exe on vaihtomittari.,
funktioon kytkinparametrin luomiseksi määritäSwitch
tyyppi parametrin määritelmässä.
esimerkiksi:
Param(<ParameterName>)
Tai, voit käyttää toista menetelmää:
Param( $<ParameterName>)
Vaihda parametrit ovat helppokäyttöinen ja ovat mieluummin yli Boolean-muuttujia,jotka on vaikeampi syntaksi.
esimerkiksi, käyttää kytkin-parametria, käyttäjä parametrin thecommand.
-IncludeAll
käyttää Boolen parametri, käyttäjä tyypit parametrien ja Boolen arvo.,
-IncludeAll:$true
Kun luot vaihtaa parametrit, valitse parametrin nimi huolellisesti. Varmista, että parametrin nimi välittää parametrin vaikutuksen käyttäjälle.Vältä epäselviä termejä, kuten suodatin tai maksimi, joka voi merkitä avalue tarvitaan.
ArgumentCompleter määrite
ArgumentCompleter ominaisuuden avulla voit lisätä välilehti päätökseen arvot toa erityisiä parametri. ArgumentCompleter-attribuutti on määriteltävä foreach-parametri, joka tarvitsee välilehden täydentämistä., Dynamiikkaparametrien tapaan käytettävissä olevat arvot lasketaan ajonaikana, kun käyttäjä painaa välilehteä parametrin nimen jälkeen.
lisätäksesi ArgumentCompleter-attribuutin, sinun on määriteltävä skriptilohko, joka määrittää arvot. Komentosarjalohkon on otettava seuraavat parametrit alla olevassa järjestyksessä. Parametrin nimillä ei ole merkitystä, koska arvot on annettu positionaalisesti.,
syntaksi on seuraava:
ArgumentCompleter script lohko
script-lohkon parametrit on asetettu seuraavat arvot:
-
$commandName
(0-Asento) – Tämä parametri on asetettu nimen thecommand, jonka käsikirjoitus lohko on tarjota välilehti loppuun. -
$parameterName
(1-Asento) – Tämä parametri on asetettu parametri whosevalue vaatii välilehti loppuun. -
$wordToComplete
(Asento 2) – Tämä parametri on asetettu arvoon käyttäjä hasprovided ennen kuin ne painetaan Välilehti., Komentosarjalohkosi pitäisi käyttää arvoa välilehden suoritusarvojen määrittämiseksi. -
$commandAst
(Asento 3) – Tämä parametri on asetettu Abstrakti SyntaxTree (AST) nykyisen input line. Lisätietoja: Seeast-Luokka. -
$fakeBoundParameters
(Asento 4) – Tämä parametri on asetettu hashtablecontaining$PSBoundParameters
varten cmdlet-komento, ennen kuin käyttäjä pressedTab. Lisätietoja saa osoitteesta seeabout_Automatic_Variables.,
ArgumentCompleter script lohko on avautua arvoja käyttäen kanssa, kuten ForEach-Object
, Where-Object
, tai muulla sopivalla menetelmällä.Palaaminen joukko arvoja aiheuttaa PowerShell käsitellä koko array asone välilehden suoritusarvo.
seuraava esimerkki lisää-välilehti loppuun Arvo parametri. Jos vain arvoparametri on määritetty, kaikki mahdolliset arvot tai argumentit, forValue näytetään. Kun Tyyppiparametri on määritelty, value-parametri näyttää vain kyseisen tyypin mahdolliset arvot.,
lisäksi -like
toimija varmistaa, että jos käyttäjä kirjoittaa followingcommand ja käyttää Välilehti loppuun, vain Apple on palannut.
Test-ArgumentCompleter -Type Fruits -Value A
Katso myös
about_Automatic_Variables
about_Functions
about_Functions_Advanced
about_Functions_Advanced_Methods
about_Functions_CmdletBindingAttribute
about_Functions_OutputTypeAttribute
Vastaa