• 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 PositionalBindingväite CmdletBinding määrite $False., Positionargumentti on etusijalla arvo PositionalBinding argumentti ofthe CmdletBinding ominaisuus. Lisätietoja, katso PositionalBindingin 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 Computerparametri 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ä DynamicParamavainsana.,

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