PowerShell paraméterek: Szintaxis, típusok, attribútumok, argumentumok és példák

2021. június 15 16760 Nézetek PowerShell paraméterek: Szintaxis, típusok, attribútumok, argumentumok és példák

A PowerShell-szkript fejlesztői a Powershell Param blokkot használják paraméterek hozzáadásához a speciális funkciókhoz. Bárki, aki a funkciót futtatja, hozzáférhet a PowerShell Parammal hozzáadott paraméterekhez.





Ezen túlmenően, a paraméterblokk segítségével a függvényekhez hozzáadott paramétereken kívül a Windows PowerShell automatikusan hozzáadja a közös paramétereket is.



Ez az útmutató a Powershell Param szintaxisát, a Powershell-paraméterek típusait, azok attribútumait és argumentumait ismerteti. Néhány példát is ad arra, hogyan lehet a Param blokkot használni paraméterek hozzáadására egy parancsfájlhoz vagy függvényhez.

Böngésszen a bejegyzések témái között



Egy PowerShell-paraméterblokk szintaxisa

Egy PowerShell-paraméterblokk szintaxisa

A PowerShell Param szintaxisa…



|_+_|

Ha paramétert szeretne hozzáadni az afunction -hoz, akkor kezdje a szóval álljon meg , majd a paraméterblokk, (). Íme a paramblokk egyszerű formája…

|_+_| A CmdletBinding Az attribútum nem kötelező, és ez az egyetlen attribútum, amely a paraméterblokkon kívül van definiálva. Erről bővebben később az útmutatóban

A Paraméter blokkon belül – param () – meg kell határozni a Paraméter attribútumokat és argumentumaikat. Továbbá egy paraméterattribútum egy [()] blokkba van zárva.



A fenti szintaktikai kódban félkövérre szedtem az összes paraméter argumentumot. Sokkal több paraméter argumentum létezik – a szintaxisban szereplők csak illusztrációs célokat szolgálnak, és semmiképpen sem teljesek.

A paraméterblokkon belül paraméterargumentumokat kell megadni, vesszővel elválasztva. Példa a PowerShell Param attribútumra a paraméter tulajdonság.



Ezenkívül egy példa a param argumentumra a kötelező érv. Egy másik példa a param argumentumra az ParameterSetName .

Végül meg kell adni a paraméter nevét. Ezenkívül meg kell adnia a paraméter adattípusát is.

A következő részben a PowerShell-paraméterek általános típusait fogom tárgyalni. Ezután a harmadik szakasz a gyakori paraméterattribútumokat és argumentumaikat tárgyalja.

Végül az útmutató utolsó részében egy valós SysAdmin példát mutatok be egy PowerShell-paraméterre. A szakasz példákat is ad arra, hogyan kell használni a paraméterblokkot egy speciális függvényben.

A PowerShell-paraméterek típusai

A PowerShell-paraméterek típusai

A beállítható paraméterek leggyakoribb típusai a következők húr vagy kapcsoló paramétereket. Ezenkívül meghatározhatja int , bool , Dátum idő vagy char paramétertípusok.

Ebben a részben néhány ilyen típusú paramétert ismertetek. Néhány példát adok arra is, hogyan lehet ezeket paraméterblokkban meghatározni.

PowerShell Param Húr Paraméter

Amikor PowerShell-paramétereket hoz létre, valószínűleg létre fog hozni a húr paraméter. A húr paraméter bármilyen karakterlánc értéket elfogad.

A Windows PowerShellben a karakterláncok lehetnek számok, szavak vagy karakterek. Pontosabban, bármi, amit dupla vagy szimpla idézőjelben deklarál, karakterlánc.

A PowerShellben a karakterlánc objektumtípusa a következő System.String .

Ha egy PowerShell-paramétert karakterlánc-paraméterként szeretne deklarálni, a paraméter neve elé zárja be a szót húr zárójelben. Íme egy példa…

|_+_|

PowerShell Param int Paraméter

An int az adattípus egy 32 bites előjelű egész szám. Angolul an int egy szám, például 1, 2 vagy 3.

Ellentétben a húr paraméter adattípus, amely bármilyen típusú adatot fogadhat, an int paraméter nagyon előíró.

Ha meghatároz egy int paramétert, a paraméter csak számokat fogadhat el. Továbbá, ha szavakat ad meg értékeként a int paramétert, a PowerShell hibaüzenetet küld.

Mielőtt bemutatnám, hogyan definiálhat egy PowerShell-paramétert int paraméter, itt van egy általános példa az int adattípus meghatározására…

|_+_|

Ha futtatom a kódot a PowerShellben, akkor vissza fog térni 123 .

PowerShell Param int Paraméter

Ellenkezőleg, ha lecserélem, a 123 ezzel int, akkor a PowerShell hibaüzenetet dob.

|_+_|

Most, hogy volt egy int adattípusú összeomlási tanfolyam, hogy hozzon létre egy PowerShell-paramétert int szám nevű paraméter, itt a kód…

|_+_|

Ez arra kényszeríti a szkript vagy függvény felhasználóit, hogy a megfelelő adattípust adják meg.

PowerShell Param Dátum idő Paraméter

Mint egy int paraméter, a Dátum idő paraméter is nagyon előírja az általa elfogadott bemenet típusát. Ahogy a név is sugallja, a Dátum idő paraméter csak a dátum és idő formátumú bemeneteket fogadja el.

Ha olyan PowerShell-paramétert szeretne megadni, amely csak dátumokat fogad el, használja az alábbi mintakódot…

|_+_|

Ebben a példában EnterDate a paraméter neve. Ezenkívül Dátum idő meghatározza az adattípust.

PowerShell Param Kapcsoló Paraméter

Ennek a szakasznak az első három alszakaszában tárgyaltam azokat a PowerShell-paraméter-típusokat, amelyekhez a felhasználó bevitele szükséges.

Létezik azonban olyan PowerShell-paramétertípus, amely nem igényel bevitelt a felhasználótól. A többi paramétertípustól eltérően a kapcsoló paraméter nem igényel felhasználói bevitelt.

Ahogyan meghatározod a kapcsoló paraméter hasonló a más típusú paraméterek meghatározásához. Ahelyett azonban kapcsoló , int , vagy dátum idő , használd a szót kapcsoló .

Például egy PowerShell-paraméter meghatározásához Kapcsoló paraméter, CSV exportálása , használja az alábbi kódot…

|_+_|

Végezetül, ennél a résznél felmerülhet a kérdés, hogy a kapcsoló paramétereket. Gondoljon egy PowerShell-szkriptre vagy függvényre, amely képes megjeleníteni az eredményeket a Powershell-konzolon.

Azt is megadhatja a felhasználónak, hogy az eredményt szöveges fájlba vagy CSV-fájlba exportálja.

A függvény kódolásának egyik módja 3 kapcsolóparaméter létrehozása. A felhasználó ezután kiválaszthat egyet a paraméterek közül, attól függően, hogy a funkció hogyan adja meg az eredményt.

Ez a fajta paraméter nem követeli meg a felhasználótól bevitelt. A paraméter egyszerű kiválasztásával a funkció ennek megfelelően megjeleníti a kimenetet.

Más PowerShell-paramétereket is megadhat adott adattípusokkal. Ha többet szeretne megtudni a PowerShell adattípusokról, látogasson el erre a hivatkozásra – PowerShell adattípusok meghatározása .

PowerShell Paraméter Paraméter Attribútumok és Argumentumok

PowerShell Paraméter Paraméter Attribútumok és Argumentumok

Az útmutató PowerShell-paraméter-szintaxisában utaltam arra, hogy a PowerShell-paraméternek vannak attribútumai. Sőt, arra is rámutattam, hogy minden paraméterattribútumnak vannak argumentumai is.

Ebben a részben a paraméterattribútumokat és azok argumentumait fogom tárgyalni.

A paraméterattribútumok és argumentumaik magyarázatához az útmutató első részében bemutatott PowerShell-paraméter szintaxisára fogok hivatkozni.

|_+_|

PowerShell Param CmdletBinding Tulajdonság

A CmdletBinding Az attribútumot általában a paraméterblokk előtt adják meg. Amikor meghatározza a CmdletBinding attribútum, a PowerShell speciális funkcióként ismeri fel a szkriptet.

Ennek az útmutatónak a szintaxis részében ezt a kódot egy paraméterblokk egyszerűsített változataként használtam.

|_+_|

Ebben a részben a CmdletBinding Tulajdonság kód része. Itt van, hogyan kell meghatározni a Tulajdonság …

|_+_|

A következő 3 alfejezetben néhány gyakori érvet fogok tárgyalni, amelyeket a CmdletBinding tulajdonság.

A kétségek elkerülése végett mindent meg kell határoznia Érvek a () blokkon belül Tulajdonság . Ezenkívül az összes attribútumot vesszővel (,) KELL elválasztani, kivéve az utolsót Érvek belül Tulajdonság .

PowerShell Param DefaultParameterSetName Érv

Amikor fejleszt egy PowerShell-függvényt, az több paramétert is tartalmazhat, amelyeket a felhasználó ugyanabban a parancsban használhat. Ezenkívül ugyanaz a PowerShell-függvény tartalmazhat egy másik paraméterkészletet, amelyet a felhasználó egy másik parancsban használhat.

nfl játékokat néz a kodi

A felhasználó azonban nem keverheti össze az első készlet paramétereit a második készlet paramétereivel.

Ezenkívül a függvényfejlesztő meghatározza az összes olyan paramétert, amelyet a felhasználó ugyanabban a parancsban használhat ParameterSetName érv. A ParameterSetName argumentum a Parameter Attribútumban van definiálva (erről bővebben a következő részben).

A csoportosított paraméterek eltérő halmazának az a következménye, hogy különbözőek lesznek ParameterSetName s.

Különbözővel ParameterSetName s dacol a paraméterblokkjával, dönthet úgy, hogy meghatározza az egyiket ParameterSetName s az alapértelmezett. Itt használja a DefaultParameterSetName Érv.

A DefaultParameterSetName Az érv belül van meghatározva CmdletBinding attribútum blokk. Íme egy példa…

|_+_|

Végül, hogy megtartsuk PowerShell paraméterblokk formátumunkat, újra bevezetem a paraméterblokkot alább…

|_+_|

PowerShell Param SupportsShouldProcess Érv

Ez egy másik érv, amelyet a CmdletBinding Tulajdonság . Mint a DefaultParameterSetName Érv, a SupportsShouldProcess Az érvelés nem kötelező.

A SupportsShouldProcess Az érv hozzáteszi a megerősít és Mi van ha a függvény közös paraméterei.

Az argumentum hozzáadásához írjon vesszőt (,) a végére DefaultParameterSetName érv. Ezután adja hozzá a sort - SupportsShouldProcess =$igaz vagy $hamis.

Ezzel az új érveléssel a CmdletBinding Tulajdonság most így fog kinézni…

|_+_|

PowerShell Param HelpURI Érv

Ha ismeri a PowerShellt Kaphat segítséget Cmdlet, lehet, hogy találkoztál vele Online paraméter. Amikor futsz Kaphat segítséget a ... val Online paramétert, a PowerShell megnyitja a parancsmag online súgóoldalát.

Például az Out-File parancsmag online súgóoldalának megnyitásához futtassa az alábbi parancsot…

|_+_|

Az ezzel a paranccsal megnyitott oldalt a függvény határozza meg HelpURI Érv. Tehát, ha azt szeretné, hogy a felhasználók hozzáférjenek a függvény online súgójához, adja meg a HelpURI Érv.

Íme egy példa…

|_+_|

Ezt az utolsó érvet most belefoglalom a CmdletBinding Tulajdonság . Íme a frissített kód…

|_+_|

PowerShell Param Paraméter Tulajdonság

A PowerShell paraméterben CmdletBinding Az attribútumok alszakaszban 3 olyan érvet tárgyaltam, amelyeket beilleszthetsz a CmdletBinding Attribútumblokk.

Mint láttad, a CmdletBinding Az attribútumblokk az egyetlen attribútum, amely a paraméterblokkon kívül van definiálva.

Ebben az alszakaszban megismerheti a paraméter attribútumot. Ezenkívül megismerheti azokat a gyakori érveket, amelyeket ehhez az attribútumhoz adhat hozzá.

Amint arra az ebben az útmutatóban már használt példákból következtethetett, a Paraméterattribútum olyan argumentumokat határoz meg, amelyek a PowerShell-paraméterek viselkedését szabályozzák.

A Paraméter attribútumot úgy határozhatja meg, hogy a Parameter szót, majd a () zárójelek közé helyezi egy [] blokkban. Íme egy példa…

|_+_|

Továbblépve meg KELL definiálni a Parameter Attribútum összes argumentumát a () blokkon belül.

A PowerShell Paraméter-attribútum szakasz következő alszakaszaiban bemutatom és elmagyarázom a Paraméterattribútumban definiálható általános argumentumokat.

PowerShell Param ParameterSetName Érv

Amikor elmagyaráztam DefaultParameterSetName ebben az útmutatóban korábban bemutattam ParameterSetName Érv. Ezzel az argumentummal kötegelheti vagy csoportosíthatja azokat a paramétereket, amelyeket a felhasználó ugyanabban a parancsban futtathat.

Például, hogy meghatározzuk a ParameterSetName hívott ParameterSetName1 , írja be az alábbi kódot a Paraméterattribútum () blokkba.

|_+_|

Amikor bemutatom ezt a frissített kódot, a mintakódom paraméterblokkja most így fog kinézni.

|_+_|

Ha visszahozom a CmdletBinding attribútum, a minta PowerShell-paraméterkódom most így fog kinézni…

|_+_|

PowerShell Param Kötelező Érv

Használhatja a Kötelező argumentum annak meghatározásához, hogy egy paraméter kötelező vagy opcionális. A Kötelező argumentum elfogadja a $true vagy $false értéket – az $true azt jelenti, hogy megköveteli, a $false, nem kötelező.

Továbbá a Kötelező argumentum nem kötelező. Ha azonban ez az argumentum nincs megadva, a paraméter nem kötelezőként lesz kezelve.

Meghatározni a Kötelező Érv, adja hozzá az alábbi kódot a Paraméterattribútum blokkhoz…

|_+_|

Végül, ha beleszámítom a Kötelező Argumentumkód a PowerShell paraméterkódomhoz, most lesz…

|_+_|

PowerShell Param Pozíció Érv

A Pozíció A paraméter attribútum argumentuma határozza meg a paraméter pozícióját. Az érték egy egész szám, amely 0-tól (nulla) kezdődik.

Az előnye a Pozíció Az érv az, hogy a felhasználók a paraméterek pozíciója alapján futtassák a függvényt. Pontosabban, amikor meghatározza a Pozíció Argumentum, a felhasználó minden paraméterhez értéket adhat meg a parancssorban a paraméter megadása nélkül.

A PowerShell ezután minden értéket hozzárendel a parancssorban a paraméter pozíciójának megfelelően.

Például a Get-ChildItem A parancsmagnak van egy paramétere Pálya (0 pozícióval). A parancsmagnak van egy másik paramétere is, Szűrő (1. pozícióval).

Alapértelmezés szerint, ha futtatom a Get-ChildItem parancsot, be kell adnom a paraméterek nevét, mielőtt hozzáadnám az értékeket. Lásd az alábbi parancsot…

|_+_|

Ebben a parancsban meghívtam a paramétereket, majd megadtam azok értékét.

PowerShell Param Position argumentum

Mivel azonban ismerem ennek a 2 paraméternek a pozícióját, így a paraméterek kifejezett meghívása nélkül tudok értékeket hozzáadni a pozíciójukhoz. Ezután módosítom a parancsomat az alábbiak szerint…

|_+_|

Nyilvánvaló, hogy ezzel időt takarítok meg! Ha azonban hosszú PowerShell-kódot néz, ez némi zavart okozhat.

A parancs ugyanazt az eredményt adja a PowerShellben…

A PowerShell automatikusan hozzárendeli a pozíciók értékeit a paraméterekhez azok alapján Pozíció Érv.

Továbblépve, itt van, hogyan határozza meg a Pozíció Érv…

|_+_| Ebben a példában a paraméterem pozíciója 0 (nulla). Amikor meghatározom a következő paraméteremet, az 1-es pozícióban lesz, és így tovább. Nem lehet két paraméter ugyanabban a helyzetben. Az útmutató későbbi részében megtudhatja, hogyan adhat hozzá egy paramétert ugyanabban a pozícióban, de különböző ParameterSetNames-ben.

Most hozzáadom ezt az argumentumot a mintakódomhoz…

|_+_|

PowerShell Param ValueFromPipeline Érv

Egy másik gyakran használt paraméter-kiegészítés a ValueFromPipeline Érv. Ahogy a név is sugallja, ez az argumentum határozza meg, hogy egy paraméter elfogad-e értékeket a folyamatból.

Így definiálja ezt az érvet…

|_+_|

Ha hozzáadom ezt az új argumentumot a kódomhoz, akkor így fog kinézni…

|_+_|

Van egy másik érv, az úgynevezett ValueFromPipelineByPropertyName . Erről az érvről a következő oldalon olvashat about_Functions_Advanced_Parameters .

PowerShell Param HelpMessage Érv

Ezzel az argumentummal megadhatja az üzenetet, amely megmutatja a felhasználóknak, hogyan kell használni egy paramétert. Meghatározni a HelpMessage Érv egy paraméter mellett, használjon az alábbihoz hasonló kódot…

|_+_|

És most itt a frissített kódom…

|_+_|

Ebben a részben eddig 2 PowerShell paraméter attribútumot tárgyaltam – CmdletBinding és Paraméter . Ezenkívül megvitattam az ezekhez az attribútumokhoz definiálható általános érveket is.

A szakasz további 3 alszakaszában 3 gyakrabban használt PowerShell-paraméter-attribútumot tanítok meg. Ez a 3 attribútum azonban nem igényli argumentumok meghatározását.

PowerShell Param Álnév Tulajdonság

Az alias attribútum egy paraméter álneveinek megadására szolgál. Amint azt már sejtette, a PowerShell-paraméter álneve is használható a paraméter helyett.

Mielőtt bemutatnám, hogyan kell meghatározni az álnév attribútumot egy paraméterhez, először is hadd mutassam meg, hogyan találhatja meg az összes parancsmag és függvény álnevét a számítógépen.

A parancsmagok és függvények összes álnevének listázásához futtassa az alábbi parancsot

|_+_|

Ez felsorolja az összes álnevet…

PowerShell Param Alias ​​Attribútum

Továbblépve a Álnév Attribútum, ha egy PowerShell-paraméterhez szeretne megadni egy attribútumot, használjon az alábbihoz hasonló kódot…

|_+_| Ebben a példában az FP a paraméter álneve.

Ha ezt hozzáadom a kódomhoz, a frissített verzió így fog kinézni…

|_+_|

PowerShell Param Támogatja a helyettesítő karaktereket Tulajdonság

Ez a paraméter param attribútum határozza meg, hogy egy paraméter elfogad-e helyettesítő karaktereket. Így definiálja ezt az attribútumot…

|_+_|

PowerShell Param ValidateNotNullOrEmpty Érvényesítési attribútum

Mint a legtöbb, ebben az útmutatóban már tárgyalt attribútum, ennek az attribútumnak a neve is ezt adja. Ez egy érvényesítési attribútum.

Amikor megadja ezt az attribútumot, a paraméter NEM fogad el null ($null) értéket. Ezenkívül nem fogad el üres () értéket.

Ha a felhasználó beírja a $null vagy , akkor a függvény hibát dob. Az attribútum meghatározásához írja be az alábbi kódot…

|_+_|

Végül frissítem a kódomat az utolsó 2 attribútummal…

|_+_|

PowerShell paraméter paraméter neve

Miután meghatározta egy paraméter összes attribútuma és argumentuma, hozzá kell adnia a paraméter nevét. A PowerShell-paraméterek változóként vannak megadva – dollárjellel ($), amelyet a paraméter neve követ.

Opcionálisan megadhat egy adattípust is a paraméterhez. Ennek az útmutatónak a 2. részében a PowerShell-paraméterek különböző típusait tárgyaltam.

Így határozhat meg egy elfogadható paramétert húr adattípus.

|_+_|

Itt van a frissített kódpéldám…

|_+_|

Egy PowerShell-paraméter meghatározása több paraméterkészletben

Egy PowerShell-paraméter meghatározása több paraméterkészletben

Ha még nem ismeri a PowerShell-függvények kódolását, akkor valószínűleg beleesik abba a kísértésbe, hogy egy paramétert többször is meghatározzon.

Az egyik ok, amiért érdemes egy paramétert többször használni, az az, ha egy paramétert több ParameterSetNames-ben (több paraméterkészletben) használnak.

Az otthon meghajtásához tegyük fel, hogy olyan PowerShell-függvényt fejleszt, amely rendelkezik a Pálya paraméter. Azonban van 2 ParameterSetName, amelyhez a Path paraméter szükséges.

A legtöbb PowerShell-szkriptet ismerő ember valószínűleg meghatározza az alábbiakban látható paramétereket…

|_+_|

Ha a fentiek szerint megadja a paramétereket, hibaüzenetet fog kapni. Az elmélet teszteléséhez átmásolom a kódot a PowerShell ISE-be.

Egy PowerShell-paraméter meghatározása több paraméterkészletben

Szóval, hogyan oldja meg ezt? A megoldás a 2 paraméterattribútum és argumentumaik meghatározása – beleértve a ParameterSetNames-et is.

Ezután mindkét paraméterattribútum végén adjon meg egyetlen paraméternevet, amely mindkét paraméterattribútumban közös. Az előző példában eltávolítom az első paraméter nevét, és meghagyom az utolsót.

|_+_|

Ha átmásolom ezt a kódot a PowerShell ISE-be, akkor minden rendben lesz.

Ebben a példában vegye figyelembe, hogy mindkét paraméterattribútum paraméterargumentuma teljesen eltérő lehet. Ezenkívül tetszőleges számú paraméterattribútumot definiálhat.

Példák a PowerShell paraméterekre

Példák a PowerShell paraméterekre

Az útmutató utolsó részében egy valós SysAdmin PowerShell paraméteres példát mutatok be.

Miközben ezt az útmutatót írtam, elkezdtem fejleszteni egy PowerShell-szkriptet/függvényt a mappaméret és a fájlok számának megállapításához. Itt van a funkció param része…

|_+_|

Ennek a szakasznak a következő néhány alfejezetében elmagyarázom a param különböző elemeit. Végül az utolsó rész bevezet egy funkcióblokkot, és hozzáadja a paraméterblokkot a függvényhez.

A következő alszakaszokban hivatkozott kódon lévő sorok követésének megkönnyítése érdekében töltse le a PowerShellParamExample.zip fájlt. Ezután csomagolja ki a fájlt, és nyissa meg a .ps1 fájlt a PowerShell ISE alkalmazásban.

ParameterSetName PowerShell paraméter példa

A PowerShell-paraméter-példakódom három ParameterSetName-ből áll – DisplayResult , ExportTxt és CSV exportálása . Ezeket a neveket azért használtam, hogy könnyebb legyen azonosítani, mit csinálnak.

Ennek a szakasznak a bevezetőjében említettem, hogy az általam ezzel a param kóddal létrehozott függvény megjeleníti a mappa méretét és a fájlszámot minden egyes almappánál egy adott mappában.

Ezért a három ParameterSetNames lehetőséget kínál a felhasználónak az eredmények megjelenítésére a PowerShell-konzolon. Alternatív megoldásként a felhasználónak lehetősége van az eredményt szövegfájlba vagy CSV-fájlba exportálni.

Továbbá mindegyik ParameterSetName meghatározza az összes olyan paramétert, amelyet a felhasználó egyetlen parancsban hívhat. Ezen ötlet alapján az általam épített függvénynek három parancslehetősége vagy szintaxisa lesz.

Ezt a gondolatot a következő alfejezetekben és példákban fejtem ki.

CmdletBinding Attribútum és DefaultParameterSetName Érvelési példák

Ennek az útmutatónak az előző részeiben találkozott a CmdletBinding Tulajdonság. Ráadásul az egyik érvével is találkoztál – DefaultParameterSetName .

A DefaultParameterSetName Az argumentum a függvény által meghívott alapértelmezett paraméterkészlet meghatározására szolgál. Ebben a példában az alapértelmezett paraméterkészlet neve DisplayResult .

A DefaultParameterSetName kód 1. sorában van deklarálva.

A PowerShell megpróbálja használni a által deklarált paraméterkészletet DefaultParameterSetName ha nem tudja meghatározni, hogy melyik paraméterkészletet használja. Ha azonban kötelező paramétereket állít be, elkerülheti ezt a problémát.

Mindenesetre nem árt egy alapértelmezett paraméterkészlet nevét deklarálni.

FolderPath Példa karakterlánc paraméterre

Itt kezdődik a móka! A FolderPath paraméter segítségével adja meg a mappa elérési útját, a függvény lekéri az almappák méretét – és megszámolja az egyes almappákban lévő fájlok számát.

Ez egy karakterlánc-paraméter. Ez azt jelenti, hogy bármilyen karakterláncot elfogad bemenetként.

Egy izgalmas tulajdonsága a FolderPath paraméter az, hogy közös a 3 paraméterkészlet nevével. A cikkben korábban kifejtettem azt a kihívást, amellyel az új PowerShell-szkriptek fejlesztői szembesülhetnek ebben a helyzetben.

Kijelenteni a FolderPath paramétert a három paraméterkészlet nevében, három paraméterattribútumot hoztam létre.

Az első paraméterattribútum az 5. és a 11. sor között található. Ezen kívül ennek az első paraméterattribútumnak több argumentuma is van.

Szeretném azonban, ha különös figyelmet fordítana a ParameterSetName érv – DisplayResult .

FolderPath karakterlánc-paraméter példa

Másodszor, a 12. és 18. sor között deklaráltam egy másik paraméterattribútumot a-val ParameterSetName érv hívott ExportTxt .

Végül a 19. és 25. sor között deklaráltam egy harmadik paraméterattribútumot a-val ParameterSetName érv hívott CSV exportálása .

FolderPath karakterlánc-paraméter példa

Sőt, ha észreveszi, a 3 paraméteres attribútum deklarációjával ellentétben én egyet deklaráltam Álnév , és ValidateNotNullOrEmpty attribútumok. Ezek az attribútumok a 26. és 27. sorban találhatók.

tumblr biztonságos mód android
FolderPath karakterlánc-paraméter példa

Végül, közvetlenül az összes attribútum és argumentuma alatt, megadtam a paraméter nevét – FolderPath . A paraméter neve a 28. sorban található.

FolderPath karakterlánc-paraméter példaA szakasz utolsó alszakaszában látni fogja, hogy a függvény hogyan jeleníti meg ezt a paramétert 3 parancsszintaxisban.

DisplayResult , ExportTxt És CSV exportálása Példa a kapcsolóparaméterekre

A param kód 29. sorából deklaráltam egy másik paraméter attribútumkészletet és argumentumaikat.

Először a 29. és 37. sor között deklarálom a paraméter attribútumait és argumentumait DisplayResult paraméter.

Ezután a 38. és 47. sor között deklarálok egy másik paramétert ExportTxt .

Példa a DisplayResult, ExportTxt és ExportCSV kapcsolóparaméterekre

Végül a 48. és 57. sor között deklaráltam a CSV exportálása paraméter.

Az ebben a részben leírt 3 paraméter mind Kapcsoló paramétereket. Amint azt már tudja, ez azt jelenti, hogy a paraméterek nem igényelnek semmilyen bevitelt a felhasználótól.

Amikor a felhasználó kiválasztja a paraméterek bármelyikét, a függvény megváltoztatja az eredmények megjelenítésének módját.

A PowerShell-paraméter használata PowerShell-függvényben

Ebben az alszakaszban szeretném bemutatni a PowerShell funkcióblokkot a példakódomban.

A PowerShell funkcióblokk szintaxisa…

|_+_|

Az útmutató utolsó példájában lecserélem a PowerShell paraméterblokkot a függvény szintaxisában az utolsó alszakaszban található paraméterkódommal. Ezenkívül a funkciót lecserélem erre Get-FolderSizeFileCount , a függvény neve.

A végső funkció most így fog kinézni…

|_+_| Ebben a példában a Begin {}, Process {} és End {} blokkok üresek.

PowerShell-paramétereim tesztelése a PowerShell-függvényben

Ebben az utolsó részben az utolsó részben létrehozott függvény paramétereit fogom tesztelni.

Ha szeretnéd kipróbálni magad, a kódot erre a linkre kattintva letöltheted – Get-FolderSizeFileCount.zip . Ezután csomagolja ki a zip fájlt.

Miután kicsomagolta a fájlt, nyissa meg a PowerShellt, és futtassa az alábbi parancsot:

|_+_| Váltson a kicsomagolt fájl teljes elérési útjára.

A parancs futtatásakor figyelmeztető üzenetet fog kapni. Az üzenetsorba írja be R és nyomja meg az Enter billentyűt a billentyűzeten.

PowerShell-paramétereim tesztelése a PowerShell-függvényben

A modul importálása után ugyanazon a PowerShell-konzolon futtassa az alábbi parancsot:

|_+_|

Íme a parancs eredménye…

Amit meg akarok mutatni, az a funkcióm súgóoldalának SZINTAXIS része. A fenti képernyőképen a Get-FolderSizeFileCount parancsot 3 különböző paranccsal futtathatja:

|_+_|

Az első dolog, amit meg kell jegyezni, hogy a három szintaxis rendelkezik a FolderPath karakterlánc paraméter. Ha elolvassa ezt az útmutatót, tudni fogja, miért.

Ezenkívül észre fogja venni, hogy az első szintaxis a DisplayResult kapcsoló paramétert is. Végül a második és harmadik szintaxisban megvan a CSV exportálása , és ExportTxt kapcsoló paramétert.

Amellett, hogy a FolderPath , és CSV exportálása paraméterek és ExportTxt paramétereket a második és harmadik szintaxisban, ezek is rendelkeznek a ReportPath karakterlánc paraméter. Ezt a paramétert nem említettem, mert a deklarációs kód hasonló a FolderPath kóddal, néhány kisebb eltéréssel. A ReportPath A funkció a szöveges és CSV-fájl jelentések mentési útvonalának megadására szolgál.

Ez az – átfogó útmutató a PowerShell paraméterekről! Remélem hasznosnak találtad?

Ha hasznosnak találtad, kérlek szavazz Igen a Volt ez a bejegyzés Hasznos kérdés alább.

Alternatív megoldásként feltehet kérdést, megjegyzést írhat, vagy további visszajelzést adhat az oldal végén található Válaszoljon űrlap segítségével.

Végül, további PowerShell tech S zónákért keresse fel a Windows PowerShell útmutató oldalát. A Munka a kezdőlapról oldalunkat is nagyon hasznosnak találhatja.

Hivatkozások és további olvasmányok

  1. PowerShell adattípusok meghatározása
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute