PowerShell-parametri: Syntaksi, tyypit, attribuutit, argumentit ja esimerkit

15. kesäkuuta 2021 16760 Näkymät PowerShell-parametri: Syntaksi, tyypit, attribuutit, argumentit ja esimerkit

PowerShell-skriptien kehittäjät käyttävät Powershell Param -lohkoa parametrien lisäämiseen lisätoimintoihin. Kuka tahansa toimintoa käyttävä voi käyttää PowerShell Paramilla lisättyjä parametreja.





Lisäksi Param-lohkolla funktioon lisättyjen parametrien lisäksi Windows PowerShell lisää automaattisesti yleisiä parametreja .



Tämä opas kattaa Powershell-parametrien syntaksin, Powershell-parametrityypit, niiden attribuutit ja argumentit. Siinä on myös esimerkkejä siitä, kuinka Param-lohkoa käytetään parametrien lisäämiseen komentosarjaan tai funktioon.

Selaa viestien aiheita



PowerShell-parametrilohkon syntaksi

PowerShell-parametrilohkon syntaksi

PowerShell Paramin syntaksi on…



|_+_|

Jos haluat lisätä parametrin funktioon , aloita sanalla lopettaa , jota seuraa parametrilohko, (). Tässä on yksinkertainen muoto param-lohkosta…

|_+_| The CmdletBinding attribuutti on valinnainen ja se on ainoa parametrilohkon ulkopuolella määritetty attribuutti. Tästä lisää myöhemmin oppaassa

Parametri-lohkossa – param () – määrität Parameter-attribuutit ja niiden argumentit. Lisäksi parametriattribuutti on suljettu [()]-lohkoon.



Yllä olevassa syntaksikoodissa lihavoitin kaikki parametriargumentit. Parametriargumentteja on paljon enemmän – syntaksin argumentit ovat vain havainnollistavia, eivätkä ne ole millään tavalla tyhjentäviä.

Parametrilohkossa määritetään parametriargumentit pilkuilla erotettuina. Esimerkki PowerShell Param -attribuutista on parametri attribuutti.



Lisäksi esimerkki param-argumentista on pakollinen Perustelu. Toinen esimerkki param-argumentista on ParameterSetName .

Lopuksi määrität parametrin nimen. Lisäksi määrität myös parametrin tietotyypin.

Seuraavassa osiossa käsittelen yleisiä PowerShell-parametrityyppejä. Kolmannessa osassa käsitellään sitten yleisiä parametriattribuutteja ja niiden argumentteja.

Lopuksi tämän oppaan viimeisessä osassa annan tosielämän SysAdmin-esimerkin PowerShell-parametrista. Osassa on myös esimerkkejä siitä, kuinka parametrilohkoa käytetään lisätoiminnossa.

PowerShell-parametrien tyypit

PowerShell-parametrien tyypit

Yleisimmät parametrityypit, joita voit asettaa, ovat merkkijono tai vaihtaa parametrit. Lisäksi voit myös määritellä int , bool , Treffiaika tai char-parametrityypit.

Tässä osiossa selitän joitakin tämäntyyppisiä parametreja. Annan myös esimerkkejä niiden määrittämisestä parametrilohkossa.

PowerShell Param merkkijono Parametri

Kun luot PowerShell-parametreja, on todennäköistä, että luot a merkkijono parametri. A merkkijono parametri hyväksyy minkä tahansa merkkijonoarvon.

Windows PowerShellissä merkkijono voi olla numeroita, sanoja tai merkkejä. Tarkemmin sanottuna kaikki, mitä ilmoitat kaksois- tai kertalainausmerkillä, on merkkijono.

PowerShellissä merkkijonon objektityyppi on System.String .

Jos haluat määrittää PowerShell-parametrin merkkijonoparametriksi, liitä sana ennen parametrin nimeä merkkijono suluissa. Tässä on esimerkki…

|_+_|

PowerShell Param int Parametri

An int tietotyyppi on 32-bittinen etumerkillinen kokonaisluku. Englanniksi an int on luku, esimerkiksi 1, 2 tai 3.

Toisin kuin a merkkijono parametritietotyyppi, joka voi ottaa minkä tahansa tyyppisiä tietoja, an int parametri on hyvin ohjeellinen.

Jos määrittelet an int parametri, parametri voi hyväksyä vain numeroita. Lisäksi, jos syötät sanoja arvoksi int parametri, PowerShell lähettää virheilmoituksen.

Ennen kuin näytän sinulle, kuinka voit määrittää PowerShell-parametrin int parametri, tässä on yleinen esimerkki int-tietotyypin määrittämisestä…

|_+_|

Jos suoritan koodin PowerShellissä, se palautuu 123 .

PowerShell Param int -parametri

Päinvastoin, jos korvaan 123 tällä on int, PowerShell antaa virheilmoituksen.

|_+_|

Nyt kun sinulla on ollut int tietotyypin kaatumiskurssi PowerShell-parametrin luomiseksi int parametri nimeltä numero, tässä on koodi…

|_+_|

Tämä pakottaa komentosarjasi tai funktiosi käyttäjät antamaan oikean tietotyypin.

PowerShell Param Treffiaika Parametri

Kuten an int parametri, a Treffiaika parametri on myös hyvin ohjeellinen sen hyväksymän syötteen tyypin suhteen. Kuten nimestä voi päätellä, Treffiaika parametri hyväksyy vain päivämäärä- ja aikamuotoiset syötteet.

Jos haluat määrittää PowerShell-parametrin, joka hyväksyy vain päivämäärät, käytä alla olevaa esimerkkikoodia…

|_+_|

Tässä esimerkissä EnterDate on parametrin nimi. Lisäksi, Treffiaika määrittää tietotyypin.

PowerShell Param Vaihtaa Parametri

Tämän osion kolmessa ensimmäisessä alaosassa olen käsitellyt PowerShell-parametrityyppejä, jotka vaativat käyttäjän syötteen.

On kuitenkin olemassa PowerShell-parametrityyppi, joka ei vaadi syötteitä käyttäjältä. Toisin kuin muuntyyppiset parametrit, a vaihtaa parametri ei vaadi käyttäjän syötteitä.

Tapa, jolla määrittelet a vaihtaa parametri on samanlainen kuin tapa, jolla määrität muuntyyppisiä parametreja. Kuitenkin tilalle vaihtaa , int , tai treffiaika , käytä sanaa vaihtaa .

Esimerkiksi PowerShell-parametrin määrittämiseen Vaihtaa parametri, Vie CSV , käytä alla olevaa koodia…

|_+_|

Lopuksi, tässä osiossa saatat ihmetellä sovelluksen käyttöä vaihtaa parametrit. Ajattele PowerShell-komentosarjaa tai funktiota, joka voi näyttää tuloksia Powershell-konsolissa.

Voit myös haluta antaa käyttäjälle mahdollisuuden viedä tulos tekstitiedostoon tai CSV-tiedostoon.

Yksi tapa koodata toiminto on luoda 3 kytkinparametria. Käyttäjä voi sitten valita jonkin parametreista sen mukaan, kuinka hän haluaa toiminnon tuottavan tuloksen.

Tämän tyyppinen parametri ei edellytä käyttäjän syöttämistä. Yksinkertaisesti valitsemalla parametri toiminto näyttää tulosteen vastaavasti.

Voit myös määrittää muita PowerShell-parametreja tietyillä tietotyypeillä. Saat lisätietoja PowerShell-tietotyypeistä käymällä tästä linkistä - Kuinka määritellä PowerShell-tietotyypit .

PowerShell-parametrien attribuutit ja argumentit

PowerShell-parametrien attribuutit ja argumentit

Tämän oppaan PowerShell-parametrisyntaksissa vihjasin, että PowerShell-parametrilla on attribuutteja. Lisäksi huomautin myös, että jokaisella parametrin attribuutilla on myös argumentit.

Tässä osiossa käsittelen parametrien attribuutteja ja niiden argumentteja.

Parametrimääritteiden ja niiden argumenttien selittämiseksi viittaan tämän oppaan ensimmäisessä osassa esiteltyyn PowerShell-parametrin syntaksiin.

|_+_|

PowerShell Param CmdletBinding Attribuutti

The CmdletBinding attribuutti määritetään yleensä ennen parametrilohkoa. Kun määrittelet CmdletBinding attribuutti, PowerShell tunnistaa komentosarjan edistyneeksi funktioksi.

Tämän oppaan syntaksiosiossa käytin tätä koodia yksinkertaistettuna versiona parametrilohkosta.

|_+_|

Tässä osiossa keskityn mm CmdletBinding Attribuutti osa koodista. Tässä on kuinka määritellään Attribuutti

|_+_|

Seuraavassa 3 alajaksossa käsittelen joitain yleisiä argumentteja, jotka voit määritellä CmdletBinding attribuutti.

Epäselvyyksien välttämiseksi sinun on määriteltävä kaikki Argumentit -lohkon () sisällä Attribuutti . Lisäksi sinun TÄYTYY erottaa kaikki attribuutit pilkulla (,), paitsi viimeinen Argumentit sisällä Attribuutti .

PowerShell Param DefaultParameterSetName Perustelu

Kun kehität PowerShell-funktion, se voi sisältää useita parametreja, joita käyttäjä voi käyttää samassa komennossa. Lisäksi sama PowerShell-funktio voi sisältää toisen parametrijoukon, jota käyttäjä voi käyttää toisessa komennossa.

Käyttäjä ei kuitenkaan voi sekoittaa ensimmäisen joukon parametreja toisen joukon parametreihin.

Lisäksi funktion kehittäjä määrittelee kaikki parametrit, joita käyttäjä voi käyttää samassa komennossa ParameterSetName Perustelu. The ParameterSetName argumentti määritellään parametrin attribuutissa (lisää tästä seuraavassa osiossa).

Erilaisten ryhmiteltyjen parametrien joukosta seuraa, että sinulla on erilaisia ParameterSetName s.

Erilaisten kanssa ParameterSetName s uhmaa parametrilohkoasi, voit päättää määrittää jonkin niistä ParameterSetName s oletuksena. Tässä käytät DefaultParameterSetName Perustelu.

The DefaultParameterSetName Argumentti on määritelty sisällä CmdletBinding attribuuttilohko. Tässä on esimerkki…

|_+_|

Lopuksi, säilyttääksesi PowerShell-parametrilohkomuotomme, otan uudelleen käyttöön alla olevan parametrilohkon…

|_+_|

PowerShell Param SupportsShouldProcess Perustelu

Tämä on toinen argumentti, jonka voit määritellä CmdletBinding Attribuutti . Kuin DefaultParameterSetName Argumentti, SupportsShouldProcess Argumentti on valinnainen.

The SupportsShouldProcess Argumentti lisää Vahvistaa ja Mitä jos funktion yhteiset parametrit.

Lisää tämä argumentti lisäämällä pilkku (,) -kohdan loppuun DefaultParameterSetName Perustelu. Lisää sitten rivi - SupportsShouldProcess =$tosi tai $false.

Tämän uuden argumentin mukaan CmdletBinding Attribuutti nyt näyttää tältä...

|_+_|

PowerShell Param HelpURI Perustelu

Jos PowerShell on sinulle tuttu Hae apua Cmdlet, olet ehkä törmännyt siihen verkossa parametri. Kun juokset Hae apua kanssa verkossa parametri, PowerShell avaa Cmdletin online-ohjesivun.

Esimerkiksi, jos haluat avata Out-File Cmdletin online-ohjesivun, suorita alla oleva komento…

|_+_|

Tällä komennolla avatun sivun määrittää funktio HelpURI Perustelu. Joten jos haluat käyttäjien pääsevän toimintosi online-ohjesivulle, määritä HelpURI Perustelu.

Tässä on esimerkki…

|_+_|

Sisällytän nyt tämän viimeisen väitteen CmdletBinding Attribuutti . Tässä päivitetty koodi…

|_+_|

PowerShell Param Parametri Attribuutti

PowerShell-parametrissa CmdletBinding Attribuutit-alaosiossa keskustelin kolmesta argumentista, jotka voit sisällyttää CmdletBinding Attribuuttilohko.

Kuten olet nähnyt, CmdletBinding Attribuuttilohko on ainoa parametrilohkon ulkopuolella määritetty attribuutti.

Tässä alaosassa opit parametrimääritteestä. Lisäksi opit myös yleisistä argumenteista, joita voit lisätä tähän määritteeseen.

Kuten olet saattanut päätellä tässä oppaassa jo käytetyistä esimerkeistä, parametriattribuutti määrittää argumentit, jotka ohjaavat PowerShell-parametrin toimintaa.

Voit määrittää parametrin attribuutin lisäämällä sanan Parametri ja sen perässä ()-sulut []-lohkoon. Tässä on esimerkki…

|_+_|

Jatkettaessa sinun TÄYTYY määrittää kaikki parametrin attribuutin argumentit ()-lohkossa.

Seuraavissa PowerShell-parametrimääritteen alaosissa esittelen ja selitän yleiset argumentit, jotka voit määrittää parametriattribuutissa.

PowerShell Param ParameterSetName Perustelu

Kun selitin DefaultParameterSetName aiemmin tässä oppaassa esittelin ParameterSetName Perustelu. Voit käyttää tätä argumenttia parametrien ryhmittelyyn tai ryhmittelyyn, jotka käyttäjä voi suorittaa samassa komennossa.

Esimerkiksi määrittämään a ParameterSetName olla nimeltään ParametrijoukonNimi1 , kirjoita alla oleva koodi Parametriattribuutti () -kenttään.

|_+_|

Kun esittelen tämän päivitetyn koodin, mallikoodini parametrilohko näyttää nyt tältä.

|_+_|

Jos tuon takaisin CmdletBinding attribuutti, esimerkki PowerShell-parametrikoodista näyttää nyt tältä…

|_+_|

PowerShell Param Pakollinen Perustelu

Voit käyttää Pakollinen argumentti määrittääksesi, onko parametri pakollinen vai valinnainen. The Pakollinen argumentti hyväksyy arvon $true tai $false – $true tarkoittaa vaatia, $false, ei vaadita.

Lisäksi, Pakollinen argumentti on valinnainen. Jos tätä argumenttia ei kuitenkaan ole määritetty, parametria käsitellään valinnaisena.

Määrittääksesi Pakollinen Argumentti, lisää alla oleva koodi Parametriattribuutti -lohkoon…

|_+_|

Lopuksi, jos sisällytän Pakollinen Argumenttikoodi PowerShell-parametrikoodilleni, minulla on nyt…

|_+_|

PowerShell Param asema Perustelu

The asema Parametriattribuutin argumentti määrittää parametrin sijainnin. Arvo on kokonaisluku, joka alkaa 0:sta (nolla).

Hyöty asema Argumentti on antaa käyttäjien suorittaa funktio käyttämällä parametrien sijaintia. Erityisesti, kun määrität asema Argumentti, käyttäjä voi syöttää arvot kullekin parametrille komentoriville määrittelemättä parametria.

PowerShell määrittää sitten jokaisen arvon komentorivillä parametrin sijainnin mukaan.

Esimerkiksi, Get-ChildItem Cmdletissä on parametri nimeltä Polku (asemalla 0). Cmdletissä on myös toinen parametri, Suodattaa (sijainnilla 1).

Oletuksena, jos suoritan Get-ChildItem -komentoa, minun on sisällytettävä parametrien nimet ennen niiden arvojen lisäämistä. Katso alla oleva komento…

|_+_|

Tässä komennossa kutsuin parametreja ja määritin sitten niiden arvot.

PowerShell-parametrin sijaintiargumentti

Koska tiedän kuitenkin näiden kahden parametrin sijainnit, voin lisätä arvoja niiden paikkoihin kutsumatta parametreja nimenomaisesti. Muutan sitten komentoani alla olevan kuvan mukaisesti...

|_+_|

Ilmeisesti tämä säästää aikaa! Jos kuitenkin katsot pitkää PowerShell-koodia, tämä voi aiheuttaa hämmennystä.

Komento antaa saman tuloksen PowerShellissä…

PowerShell määrittää automaattisesti paikoissa olevat arvot parametreille niiden perusteella asema Perustelu.

Jatketaan, miten määrittelet asema Perustelu…

|_+_| Tässä esimerkissä parametrini sijainti on 0 (nolla). Kun määritän seuraavan parametrini, se on paikassa 1 ja niin edelleen. Kahta parametria ei voi olla samassa paikassa. Myöhemmin oppaassa opit lisäämään yhden parametrin samaan paikkaan, mutta eri ParameterSetNames.

Lisään nyt tämän argumentin esimerkkikoodiini…

|_+_|

PowerShell Param ValueFromPipeline Perustelu

Toinen yleisesti käytetty parametrin lisäys on ValueFromPipeline Perustelu. Kuten nimestä voi päätellä, tämä argumentti määrittää, hyväksyykö parametri arvoja liukuhihnasta.

Näin määrittelet tämän argumentin…

|_+_|

Jos lisään tämän uuden argumentin koodiini, se näyttää tältä…

|_+_|

On toinenkin argumentti nimeltä ValueFromPipelineByPropertyName . Lue tästä väitteestä osoitteessa about_Functions_Advanced_Parameters .

PowerShell Param Ohjeviesti Perustelu

Voit käyttää tätä argumenttia määrittämään viestin, joka näyttää käyttäjille, kuinka parametria käytetään. Määrittääksesi a Ohjeviesti Argumentti parametrille, käytä alla olevan kaltaista koodia...

|_+_|

Ja tässä on nyt päivitetty koodini…

|_+_|

Tähän mennessä tässä osiossa olen käsitellyt kahta PowerShell-parametrin attribuuttia – CmdletBinding ja Parametri . Lisäksi keskustelin myös yleisistä argumenteista, jotka voit määrittää näille määritteille.

Tämän osion jäljellä olevissa kolmessa alaosassa opetan sinulle 3 yleisemmin käytettyä PowerShell-parametriattribuuttia. Nämä kolme attribuuttia eivät kuitenkaan vaadi argumenttien määrittämistä.

PowerShell Param Alias Attribuutti

Alias-attribuuttia käytetään parametrin aliasten määrittämiseen. Kuten olet ehkä arvannut, PowerShell-parametrin aliasta voidaan käyttää parametrin sijasta.

Ennen kuin näytän sinulle, kuinka parametrin alias-attribuutti määritetään, haluan ensin näyttää sinulle, kuinka löydät tietokoneesi kaikkien komentojen ja toimintojen aliakset.

Luettele kaikki Cmdlet- ja Functions-aliakset suorittamalla alla oleva komento

|_+_|

Tämä listaa kaikki aliakset…

PowerShell Param Alias ​​-attribuutti

Siirrytään kohtaan Alias Määritä attribuutti PowerShell-parametrille käyttämällä alla olevan kaltaista koodia…

|_+_| Tässä esimerkissä FP on parametrin alias.

Jos lisään tämän koodiini, päivitetty versio näyttää tältä…

|_+_|

PowerShell Param Tukee jokerimerkkejä Attribuutti

Tämä parametrin param-attribuutti määrittää, hyväksyykö parametri jokerimerkit. Näin määrität tämän attribuutin…

|_+_|

PowerShell Param ValidateNotNullOrEmpty Vahvistusmäärite

Kuten useimmat tässä oppaassa jo käsitellyt attribuutit, myös tämän määritteen nimi kertoo sen. Se on validointiattribuutti.

Kun määrität tämän attribuutin, parametri EI hyväksy nolla-arvoa ($null). Lisäksi se ei hyväksy tyhjää ()-arvoa.

Jos käyttäjä syöttää $null tai , funktio antaa virheilmoituksen. Määritä tämä attribuutti kirjoittamalla alla oleva koodi…

|_+_|

Lopuksi päivitän koodini kahdella viimeisellä attribuutilla…

|_+_|

PowerShell-parametrin parametrin nimi

Kun olet määrittänyt kaikki parametrin attribuutit ja argumentit, sinun on lisättävä parametrin nimi. PowerShell-parametri määritellään muuttujan tavoin – dollarimerkillä ($), jota seuraa parametrin nimi.

Voit myös valinnaisesti syöttää parametrille tietotyypin. Tämän oppaan osassa 2 käsittelin erilaisia ​​PowerShell-parametreja.

Näin määrität parametrin, joka voi hyväksyä merkkijono tietotyyppi.

|_+_|

Tässä on päivitetty koodiesimerkkini…

|_+_|

Kuinka määritellä yksi PowerShell-parametri useissa parametrijoukoissa

Kuinka määritellä yksi PowerShell-parametri useissa parametrijoukoissa

Jos olet uusi PowerShell-funktioiden koodaamisessa, on mahdollista, että joudut kiusaukseen määrittää yksi parametri useita kertoja.

Yksi syy siihen, että haluat ehkä käyttää parametria useita kertoja, on se, että parametria käytetään useissa ParameterSetNamesissa (useita parametrijoukkoja).

Oletetaan, että olet kehittämässä PowerShell-toimintoa, jolla on a Polku parametri. Sinulla on kuitenkin kaksi ParameterSetNamea, jotka vaativat Path-parametrin.

Useimmat ihmiset, jotka ovat uusia PowerShell-komentosarjan käytössä, määrittelevät todennäköisesti alla näkyvät parametrit…

miten näytön jakaminen otetaan käyttöön ristiriidoissa
|_+_|

Jos määrität parametrit yllä kuvatulla tavalla, saat virheilmoituksen. Tämän teorian testaamiseksi kopioin koodin PowerShell ISE:hen.

Kuinka määritellä yksi PowerShell-parametri useissa parametrijoukoissa

Joten miten korjaat tämän? Ratkaisu on määrittää 2 parametrin attribuuttia ja niiden argumentit – mukaan lukien niiden ParameterSetNames.

Määritä sitten molempien parametrimääritteiden lopussa yksi parametrin nimi, joka on yhteinen molemmille parametrimääritteille. Edellisessä esimerkissä poistan ensimmäisen parametrin nimen ja jätän viimeisen.

|_+_|

Jos nyt kopioin tämän koodin PowerShell ISE:hen, se on kunnossa.

Huomaa, että tässä esimerkissä molempien parametrien attribuuttien parametrit voivat olla täysin erilaisia. Lisäksi voit määrittää niin monta parametriattribuuttia kuin haluat.

PowerShell-parametriesimerkkejä

PowerShell-parametriesimerkkejä

Tässä oppaan viimeisessä osassa annan tosielämän SysAdmin PowerShell -parametriesimerkin.

Kirjoittaessani tätä opasta aloin kehittää PowerShell-komentosarjaa/funktiota kansion koon ja tiedostomäärän selvittämiseksi. Tässä on toiminnon param-osa…

|_+_|

Tämän osan seuraavissa alakohdissa selitän parametrin eri elementit. Lopuksi viimeinen osa esittelee funktiolohkon ja lisää parametrilohkon funktioon.

Lataa PowerShellParamExample.zip, jotta sinun on helppo seurata seuraavissa alaosissa viitatun koodin rivejä. Pura sitten tiedosto ja avaa .ps1-tiedosto PowerShell ISE:ssä.

ParameterSetName PowerShell-parametriesimerkki

PowerShell-parametriesimerkkikoodissani on kolme ParameterSetNamea – DisplayResult , VieTxt ja Vie CSV . Käytin näitä nimiä helpottaakseni niiden tekemisen tunnistamista.

Tämän osion johdannossa mainitsin, että tällä parametrikoodilla rakentamani toiminto näyttää kansion koon ja tiedostomäärän kullekin määritetyn kansion alikansiolle.

Siksi kolme ParameterSetNamea tarjoavat käyttäjälle mahdollisuuden näyttää tulokset PowerShell-konsolissa. Vaihtoehtoisesti käyttäjällä on mahdollisuus viedä tulos tekstitiedostoon tai CSV-tiedostoon.

Lisäksi jokainen ParameterSetName määrittää kaikki parametrit, joita käyttäjä voi kutsua yhdellä komennolla. Tämän idean perusteella rakentamassani funktiossa on kolme komentovaihtoehtoa tai syntaksia.

Laajentelen tätä ajatusta seuraavissa alaosissa ja esimerkeissä.

CmdletBinding Attribuutti Ja DefaultParameterSetName Esimerkkejä argumenteista

Tämän oppaan aiemmissa osissa törmäsit CmdletBinding Attribuutti. Lisäksi törmäsit myös yhteen sen argumenteista – DefaultParameterSetName .

The DefaultParameterSetName argumenttia käytetään määrittämään oletusparametrijoukko, jota funktio kutsuu. Tässä esimerkissä oletusparametrijoukon nimi on DisplayResult .

The DefaultParameterSetName ilmoitetaan koodin rivillä 1.

PowerShell yrittää käyttää parametrijoukkoa, jonka on ilmoittanut DefaultParameterSetName jos se ei voi määrittää käytettävää parametrijoukkoa. Jos asetat pakolliset parametrit, voit kuitenkin välttää tämän ongelman.

Joka tapauksessa oletusparametrijoukon nimen ilmoittamisesta ei ole haittaa.

FolderPath Esimerkki merkkijonoparametrista

Tästä se hauskuus alkaa! The FolderPath parametria käytetään syöttämään kansiopolku, funktio saa alikansioidensa koon – ja laskee kunkin alikansion tiedostojen määrän.

Tämä on merkkijonoparametri. Tämä tarkoittaa, että se hyväksyy minkä tahansa merkkijonon syötteenä.

Yksi jännittävä ominaisuus FolderPath parametri on, että se on yhteinen 3 parametrijoukon nimelle. Aiemmin tässä artikkelissa selitin haasteen, jonka uudet PowerShell-skriptien kehittäjät voivat kohdata tässä tilanteessa.

Ilmoittaakseen FolderPath parametri kolmessa parametrijoukon nimessä, loin kolme parametriattribuuttia.

Ensimmäinen parametrin attribuutti on rivien 5 ja 11 välissä. Lisäksi tällä ensimmäisellä parametrin attribuutilla on useita argumentteja.

Haluan kuitenkin, että kiinnität erityistä huomiota ParameterSetName Perustelu - DisplayResult .

FolderPath merkkijonoparametriesimerkki

Toiseksi, rivien 12 ja 18 välissä ilmoitin toisen parametrin attribuutin a:lla ParameterSetName argumentti kutsuttu VieTxt .

Lopuksi ilmoitin rivien 19 ja 25 välissä kolmannen parametriattribuutin a:lla ParameterSetName argumentti kutsuttu Vie CSV .

FolderPath merkkijonoparametriesimerkki

Lisäksi, jos huomaat, toisin kuin 3 parametriattribuutin ilmoittaminen, olen ilmoittanut yhden Alias , ja ValidateNotNullOrEmpty attribuutteja. Nämä attribuutit löytyvät riveiltä 26 ja 27.

FolderPath merkkijonoparametriesimerkki

Lopuksi, juuri kaikkien attribuuttien ja niiden argumenttien alle, lisäsin parametrin nimen - FolderPath . Parametrin nimi on rivillä 28.

FolderPath merkkijonoparametriesimerkkiTämän osion viimeisessä alaosassa näet, kuinka funktio näyttää tämän parametrin kolmessa komentosyntaksissa.

DisplayResult , VieTxt Ja Vie CSV Esimerkki kytkinparametrista

Ilmoitin parametrikoodin riviltä 29 toisen parametriattribuuttien ja niiden argumenttien joukon.

Ensinnäkin rivien 29 ja 37 välissä ilmoitan parametrin attribuutit ja argumentit DisplayResult parametri.

Sitten rivien 38 ja 47 välissä ilmoitan toisen parametrin nimeltä VieTxt .

DisplayResult-, ExportTxt- ja ExportCSV-kytkinparametriesimerkki

Lopuksi, rivien 48 ja 57 välissä, julistin Vie CSV parametri.

Tässä osiossa kuvaamani kolme parametria ovat kaikki Vaihtaa parametrit. Kuten jo tiedät, tämä tarkoittaa, että parametrit eivät vaadi käyttäjän syötteitä.

Kun käyttäjä valitsee jonkin parametrista, funktio muuttaa tapaa, jolla se näyttää tulokset.

PowerShell-parametrin käyttäminen PowerShell-funktiossa

Tässä alaosiossa haluan esitellä PowerShell-funktiolohkon esimerkkikoodiini.

PowerShell-funktiolohkon syntaksi on…

|_+_|

Tämän oppaan viimeisessä esimerkissä korvaan funktion syntaksin PowerShell-parametrilohkon viimeisestä alaosiosta peräisin olevalla parametrikoodillani. Lisäksi vaihdan toiminnon Get-FolderSizeFileCount , funktion nimi.

Lopullinen toiminto näyttää nyt tältä…

|_+_| Tässä esimerkissä Begin {}, Process {} ja End {} lohkot ovat tyhjiä.

PowerShell-parametrieni testaus PowerShell-funktiossa

Tässä viimeisessä osiossa testaan ​​parametreja viimeisessä osiossa luomassani funktiossa.

Jos haluat testata sitä itse, voit ladata koodin napsauttamalla tätä linkkiä – Get-FolderSizeFileCount.zip. Pura sitten zip-tiedosto.

Kun olet purkanut tiedoston, avaa PowerShell ja suorita alla oleva komento:

|_+_| Vaihda puretun tiedoston koko polkuun.

Kun suoritat komennon, saat varoitusviestin. Kirjoita viestikehotteeseen R ja paina näppäimistön Enter-näppäintä.

PowerShell-parametrieni testaus PowerShell-funktiossa

Kun moduuli on tuotu, suorita alla oleva komento samassa PowerShell-konsolissa:

|_+_|

Tässä on komennon tulos…

Haluan näyttää sinulle Functionini ohjesivun SYNTAKSI-osion. Yllä olevasta kuvakaappauksesta voit suorittaa Get-FolderSizeFileCount-komennon kolmessa eri komennossa:

|_+_|

Ensimmäinen huomioitava asia on, että kolmella syntaksilla on FolderPath merkkijonoparametri. Jos luet tämän oppaan läpi, tiedät miksi.

Lisäksi huomaat, että ensimmäisessä syntaksissa on DisplayResult kytkinparametri myös. Lopuksi toisessa ja kolmannessa syntaksissa sinulla on Vie CSV , ja VieTxt kytkinparametrit vastaavasti.

Lisäksi FolderPath , ja Vie CSV parametrit ja VieTxt parametreja toisessa ja kolmannessa syntaksissa, niillä on myös ReportPath merkkijonoparametri. En maininnut tätä parametria, koska ilmoituskoodi on samanlainen kuin FolderPath koodia pienin eroin. The ReportPath käytetään määrittämään polku, jonka funktio tallentaa teksti- ja CSV-tiedostoraportit.

Siinä se – kattava opas PowerShell-parametrista! Toivottavasti siitä oli apua?

Jos koit sen hyödylliseksi, äänestä ystävällisesti Joo Oliko tämä viesti Hyödyllinen kysymys alla.

Vaihtoehtoisesti voit esittää kysymyksen, jättää kommentin tai antaa lisää palautetta tämän sivun lopusta löytyvällä Vastaa -lomakkeella.

Lopuksi lisää PowerShell tech S Zones -alueita Windows PowerShell -ohjesivullamme. Saatat myös pitää Work from Home -sivustamme erittäin hyödyllisenä.

Viitteet ja lisätietoa

  1. Kuinka määritellä PowerShell-tietotyypit
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute