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
- A PowerShell-paraméterek típusai
- PowerShell Paraméter Paraméter Attribútumok és Argumentumok
- Egy PowerShell-paraméter meghatározása több paraméterkészletben
- Példák a PowerShell paraméterekre
- ParameterSetName PowerShell paraméter példa
- Példák a CmdletBinding attribútumra és a DefaultParameterSetName argumentumra
- FolderPath karakterlánc-paraméter példa
- Példa a DisplayResult, ExportTxt és ExportCSV kapcsolóparaméterekre
- A PowerShell-paraméter használata PowerShell-függvényben
- PowerShell-paramétereim tesztelése a PowerShell-függvényben
- Hivatkozások és további olvasmányok
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óbanA 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 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 .
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
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.
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…
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
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.
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
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 .
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 .
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
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ó.
A 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 .
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.
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.


