PowerShell Param: syntaxis, typen, attributen, argumenten en voorbeelden
Ontwikkelaars van PowerShell-scripts gebruiken Powershell Param-blok om parameters toe te voegen aan geavanceerde functies. Iedereen die de functie uitvoert, heeft toegang tot parameters die zijn toegevoegd met PowerShell Param.
Naast de parameters die zijn toegevoegd aan een functie met het Param-blok, voegt Windows PowerShell bovendien automatisch Common Parameters toe.
Deze handleiding behandelt de syntaxis van Powershell Param, typen Powershell-parameters, hun kenmerken en argumenten. Het geeft ook enkele voorbeelden van het gebruik van het Param-blok om parameters aan een script of functie toe te voegen.
Blader door berichtonderwerpen
- Syntaxis van een PowerShell Param-blok
- Typen PowerShell-parameters
- PowerShell Param-parameterkenmerken en -argumenten
- Hoe één PowerShell-parameter in meerdere parametersets te definiëren
- PowerShell Param-voorbeelden
- ParameterSetName PowerShell Param Voorbeeld
- CmdletBinding Attribute en DefaultParameterSetName Argumentvoorbeelden
- FolderPath String Parameter Voorbeeld
- DisplayResult, ExportTxt en ExportCSV Schakelparametervoorbeeld
- Hoe PowerShell Param te gebruiken in een PowerShell-functie
- Mijn PowerShell-parameters testen in de PowerShell-functie
- Referenties en verder lezen
Syntaxis van een PowerShell Param-blok
De syntaxis van PowerShell Param is...
|__+_|
Om een parameter aan een functie toe te voegen, begint u met het woord stoppen , gevolgd door het parameterblok, (). Hier is een eenvoudige vorm van een paramblok...
|__+_| De CmdletBinding attribuut is optioneel en het is het enige attribuut dat buiten het parameterblok is gedefinieerd. Meer hierover verderop in de gidsBinnen het Param-blok – param () – definieert u de parameterattributen en hun argumenten. Verder is een parameterattribuut ingesloten in een [()]-blok.
In de bovenstaande syntaxiscode heb ik alle parameterargumenten vetgedrukt. Er zijn veel meer parameterargumenten - die in de syntaxis zijn alleen ter illustratie en zijn op geen enkele manier uitputtend.
Binnen het parameterblok definieert u parameterargumenten, gescheiden door komma's. Een voorbeeld van een PowerShell Param-kenmerk is de parameter attribuut.
Bovendien is een voorbeeld van een param-argument de verplicht argument. Een ander voorbeeld van een param argument is Naam parameterset .
Ten slotte definieert u de naam van de parameter. Bovendien specificeert u ook het parametergegevenstype.
In de volgende sectie zal ik de veelvoorkomende typen PowerShell-parameters bespreken. Vervolgens behandelt sectie drie algemene parameterattributen en hun argumenten.
Ten slotte zal ik in het laatste gedeelte van deze handleiding een realistisch SysAdmin-voorbeeld geven van een PowerShell Param. De sectie geeft ook voorbeelden van het gebruik van het paramblok in een geavanceerde functie.
Typen PowerShell-parameters
De meest voorkomende soorten parameters die u kunt instellen zijn: snaar of schakelaar parameters. Daarnaast kunt u ook definiëren: int , bool , Datum Tijd of char-parametertypen.
In deze sectie zal ik enkele van dit soort parameters uitleggen. Ik zal ook enkele voorbeelden geven van hoe ze in een paramblok kunnen worden gedefinieerd.
PowerShell-parameter Snaar Parameter
Wanneer u PowerShell-parameters maakt, maakt u waarschijnlijk een snaar parameter. EEN snaar parameter accepteert elke tekenreekswaarde.
In Windows PowerShell kan een tekenreeks getallen, woorden of tekens zijn. In het bijzonder is alles wat u in een dubbel of enkel aanhalingsteken declareert een tekenreeks.
In PowerShell is het objecttype van een tekenreeks Systeem.String .
Om een PowerShell-parameter als een tekenreeksparameter te declareren, plaatst u vóór de naam van de parameter het woord snaar tussen haakjes. Hier is een voorbeeld…
|__+_|PowerShell-parameter int Parameter
Een int gegevenstype is een 32-bits geheel getal met teken. In het Engels, een int is een getal, bijvoorbeeld 1, 2 of 3.
in tegenstelling tot een snaar parametergegevenstype dat elk type gegevens kan aannemen, en int parameter is zeer prescriptief.
Als u een . definieert int parameter kan de parameter alleen getallen accepteren. Als u bovendien woorden invoert als waarde voor de int parameter, zal PowerShell een foutmelding geven.
Voordat ik je laat zien hoe je een PowerShell Param definieert int parameter, hier is een algemeen voorbeeld van hoe u een int-gegevenstype definieert ...
|__+_|Als ik de code in PowerShell uitvoer, wordt deze geretourneerd 123 .
Integendeel, als ik vervang, 123 met dit is een int, zal PowerShell een foutmelding geven.
|__+_|
Nu je een int spoedcursus datatype, om een PowerShell Param te maken int parameter genaamd nummer, hier is de code...
|__+_|Dit dwingt de gebruikers van uw script of functie om het juiste gegevenstype op te geven.
PowerShell-parameter Datum Tijd Parameter
zoals een int parameter, a Datum Tijd parameter is ook erg prescriptief voor het type invoer dat het accepteert. Zoals de naam al aangeeft, is de Datum Tijd parameter accepteert alleen invoer van datum- en tijdformaat.
Als u een PowerShell-parameter wilt definiëren die alleen datums accepteert, gebruikt u de onderstaande voorbeeldcode...
|__+_|In dit voorbeeld, Datum invoeren is de naam van de parameter. Aanvullend, Datum Tijd definieert het gegevenstype.
PowerShell-parameter Schakelaar Parameter
In de eerste drie subsecties van deze sectie heb ik PowerShell-parametertypen besproken die invoer van een gebruiker vereisen.
Er is echter een PowerShell-parametertype waarvoor geen invoer van een gebruiker nodig is. In tegenstelling tot de andere soorten parameters, is a schakelaar parameter vereist geen gebruikersinvoer.
De manier waarop je een definieert schakelaar parameter is vergelijkbaar met de manier waarop u andere typen parameters definieert. Echter, in plaats van schakelaar , int , of datum Tijd , gebruik het woord schakelaar .
Bijvoorbeeld om een PowerShell-parameter te definiëren Schakelaar parameter, ExportCSV , gebruik onderstaande code...
|__+_|Ten slotte, voor deze sectie, vraag je je misschien af over de toepassing van schakelaar parameters. Denk aan een PowerShell-script of -functie die resultaten kan weergeven op de Powershell-console.
Misschien wilt u de gebruiker ook de optie geven om het resultaat naar een tekstbestand of een CSV-bestand te exporteren.
Een manier om de functie te coderen is om 3 schakelparameters te creëren. Een gebruiker kan dan een van de parameters selecteren, afhankelijk van hoe hij wil dat de functie het resultaat levert.
Voor dit type parameter hoeft de gebruiker geen invoer in te voeren. Door simpelweg de parameter te selecteren, zal de functie de output dienovereenkomstig weergeven.
U kunt ook andere Power shell-parameters definiëren met specifieke gegevens typen. Ga naar deze link voor meer informatie over PowerShell-gegevenstypen: PowerShell-gegevenstypen definiëren .PowerShell Param-parameterkenmerken en -argumenten
In de PowerShell Param-syntaxis van deze handleiding liet ik doorschemeren dat een PowerShell-parameter kenmerken heeft. Bovendien heb ik er ook op gewezen dat elk parameterattribuut ook argumenten heeft.
windows 8 generieke sleutel
In deze sectie zal ik parameterattributen en hun argumenten bespreken.
Om parameterkenmerken en hun argumenten uit te leggen, verwijs ik naar de syntaxis van PowerShell-param die in het eerste gedeelte van deze handleiding is geïntroduceerd.
|__+_|PowerShell-parameter CmdletBinding Attribuut
De CmdletBinding attribuut wordt meestal gespecificeerd vóór het parameterblok. Wanneer u de . definieert CmdletBinding kenmerk, zal PowerShell het script herkennen als een geavanceerde functie.
In de syntaxissectie van deze handleiding heb ik deze code gebruikt als een vereenvoudigde versie van een paramblok.
|__+_|In deze sectie zal ik me concentreren op de CmdletBinding Attribuut gedeelte van de code. Hier leest u hoe u de . definieert Attribuut …
|__+_|In de volgende 3 subparagrafen zal ik enkele van de veelvoorkomende argumenten bespreken, die u kunt definiëren in de CmdletBinding attribuut.
Voor alle duidelijkheid: u moet alles definiëren Argumenten binnen het () blok van de Attribuut . Ook MOET je alle attributen scheiden door een komma (,), behalve de laatste Argumenten binnen de Attribuut .
PowerShell-parameter DefaultParameterSetName Argument
Wanneer u een PowerShell-functie ontwikkelt, kan deze meerdere parameters bevatten die een gebruiker in dezelfde opdracht kan gebruiken. Bovendien kan dezelfde PowerShell-functie een andere set parameters bevatten die een gebruiker in een andere opdracht kan gebruiken.
De gebruiker kan de parameters in de eerste set echter niet combineren met de parameters in de tweede set.
Verder definieert een functieontwikkelaar alle parameters die een gebruiker in hetzelfde commando kan gebruiken met de Naam parameterset argument. De Naam parameterset argument wordt gedefinieerd in het parameterkenmerk (meer hierover in de volgende sectie).
De implicatie van het hebben van verschillende sets gegroepeerde parameters is dat je verschillende Naam parameterset s.
Met verschillende Naam parameterset is getrotseerd in uw paramblok, kunt u besluiten om een van de Naam parameterset s als standaard. Hier gebruik je de DefaultParameterSetName Argument.
De DefaultParameterSetName Argument wordt gedefinieerd binnen de CmdletBinding attribuut blok. Hier is een voorbeeld…
|__+_|Ten slotte, om ons PowerShell-paramblokformaat te behouden, zal ik het onderstaande paramblok opnieuw introduceren ...
|__+_|PowerShell-parameter OndersteuntShouldProces Argument
Dit is een ander argument dat u kunt definiëren in de CmdletBinding Attribuut . Zoals de DefaultParameterSetName argument, de OndersteuntShouldProces Argumenten zijn optioneel.
De OndersteuntShouldProces Argument voegt de . toe Bevestigen en Wat als gemeenschappelijke parameters voor de functie.
Om dit argument toe te voegen, voegt u een komma (,) toe aan het einde van de DefaultParameterSetName argument. Voeg vervolgens de regel toe - OndersteuntShouldProces =$waar of $onwaar.
fout 963 op Android
Met dit nieuwe argument opgenomen, de CmdletBinding Attribuut ziet er nu zo uit...
|__+_|PowerShell-parameter Help-URI Argument
Als u bekend bent met de PowerShell Hulp krijgen Cmdlet, je bent misschien zijn tegengekomen Online parameter. wanneer je rent Hulp krijgen met de Online parameter, PowerShell opent de online Help-pagina van de cmdlet.
Om bijvoorbeeld de online help-pagina van de Out-File Cmdlet te openen, voert u de onderstaande opdracht uit...
|__+_|De pagina die door dit commando wordt geopend, wordt gedefinieerd in een functie door de Help-URI Argument. Dus als u wilt dat gebruikers toegang krijgen tot de online helppagina van uw functie, definieert u de Help-URI Argument.
Hier is een voorbeeld…
|__+_|Ik zal dit laatste argument nu opnemen in de CmdletBinding Attribuut . Hier is de bijgewerkte code...
|__+_|PowerShell-parameter Parameter Attribuut
In de PowerShell-parameter CmdletBinding Attribuut subsectie, ik heb 3 argumenten besproken die je kunt opnemen in de CmdletBinding Attribuut blok.
Zoals je hebt gezien, is de CmdletBinding Attribuutblok is het enige attribuut dat buiten het parameterblok is gedefinieerd.
In deze subsectie leert u meer over het parameterkenmerk. Daarnaast leer je ook over de veelvoorkomende argumenten die je aan dit kenmerk kunt toevoegen.
Zoals u wellicht hebt afgeleid uit de voorbeelden die al in deze handleiding worden gebruikt, definieert het parameterkenmerk argumenten die het gedrag van een PowerShell-parameter bepalen.
U kunt het parameterkenmerk definiëren door het woord parameter, gevolgd door () haakjes in een []-blok te plaatsen. Hier is een voorbeeld…
|__+_|Verderop, MOET u alle argumenten van het parameterkenmerk binnen het () blok definiëren.
In de volgende subsecties van de sectie PowerShell Param-parameterkenmerk, zal ik de algemene argumenten introduceren en uitleggen die u kunt definiëren binnen het parameterkenmerk.
PowerShell-parameter Naam parameterset Argument
Toen ik uitlegde DefaultParameterSetName eerder in deze handleiding heb ik geïntroduceerd Naam parameterset Argument. U kunt dit argument gebruiken om parameters te groeperen of groeperen die een gebruiker in dezelfde opdracht kan uitvoeren.
Bijvoorbeeld, om a . te definiëren Naam parameterset genaamd ParameterSetNaam1 , voert u de onderstaande code in het blok Parameter Attribuut () in.
|__+_|Wanneer ik deze bijgewerkte code introduceer, ziet het paramblok van mijn voorbeeldcode er nu zo uit.
|__+_|Als ik de . terug breng CmdletBinding attribuut, mijn voorbeeld PowerShell-paramcode ziet er nu als volgt uit ...
|__+_|PowerShell-parameter Verplicht Argument
U kunt de Verplicht argument om te definiëren of een parameter vereist of optioneel is. De Verplicht argument accepteert een $true of $false waarde - $true betekent vereisen, $false, niet vereist.
Verder is de Verplicht argument is optioneel. Als dit argument echter niet is gedefinieerd, wordt de parameter als optioneel beschouwd.
Om de . te definiëren Verplicht Argument, voeg de onderstaande code toe aan het parameterkenmerkblok...
|__+_|Tot slot, als ik de Verplicht Argumentcode voor mijn PowerShell-paramcode, ik heb nu ...
|__+_|PowerShell-parameter Positie Argument
De Positie Argument van het parameterkenmerk definieert de positie van de parameter. De waarde is een geheel getal, beginnend bij 0 (nul).
Het voordeel van de Positie Argument is om gebruikers in staat te stellen de functie uit te voeren met behulp van de positie van de parameters. In het bijzonder, wanneer u de . definieert Positie Argument, een gebruiker kan waarden invoeren voor elke parameter in de opdrachtregel zonder de parameter op te geven.
PowerShell wijst vervolgens elke waarde in de opdrachtregel toe op basis van de parameterpositie.
Bijvoorbeeld de Get-ChildItem Cmdlet heeft een parameter genaamd Pad (met positie 0). De cmdlet heeft ook een andere parameter, Filter (met positie 1).
Als ik standaard de Get-ChildItem commando, moet ik de parameternamen opnemen voordat ik hun waarden toevoeg. Zie de opdracht hieronder...
|__+_|In deze opdracht heb ik de parameters aangeroepen en vervolgens hun waarden opgegeven.
Omdat ik echter de posities van deze 2 parameters ken, kan ik waarden toevoegen aan hun posities, zonder de parameters uitdrukkelijk aan te roepen. Ik zal dan mijn opdracht wijzigen zoals hieronder wordt weergegeven ...
|__+_|Dit scheelt mij natuurlijk tijd! Als u echter naar een lange PowerShell-code kijkt, kan dit voor enige verwarring zorgen.
apps zoals notability voor Android
De opdracht geeft hetzelfde resultaat in PowerShell...
PowerShell wijst automatisch de waarden in de posities aan de parameters toe op basis van hun Positie Argument.
Verderop, hier is hoe u de . definieert Positie Argument…
|__+_| In dit voorbeeld is mijn parameterpositie 0 (nul). Wanneer ik mijn volgende parameter definieer, staat deze op positie 1, enzovoort. U kunt niet twee parameters op dezelfde positie hebben. Verderop in de handleiding leert u hoe u één parameter op dezelfde positie maar met verschillende ParameterSetNames kunt toevoegen.Ik zal dit argument nu toevoegen aan mijn voorbeeldcode ...
|__+_|PowerShell-parameter WaardeFromPipeline Argument
Een andere veelgebruikte parametervergroting is de WaardeFromPipeline Argument. Zoals de naam al aangeeft, bepaalt dit argument of een parameter waarden uit de pijplijn accepteert.
Zo definieer je dit argument...
|__+_|Als ik dit nieuwe argument aan mijn code toevoeg, ziet het er als volgt uit ...
|__+_|Er is een ander argument genaamd ValueFromPipelineByPropertyName . Ga voor meer informatie over dit argument naar about_Functions_Advanced_Parameters .
PowerShell-parameter Helpbericht Argument
U kunt dit argument gebruiken om het bericht op te geven om gebruikers te laten zien hoe ze een parameter moeten gebruiken. om a . te definiëren Helpbericht Argument voor een parameter, gebruik een code die lijkt op die hieronder...
|__+_|En hier is nu mijn bijgewerkte code ...
|__+_|Tot nu toe heb ik in deze sectie 2 PowerShell-paramkenmerken besproken: CmdletBinding en Parameter . Daarnaast heb ik ook de algemene argumenten besproken die u voor deze attributen kunt definiëren.
In de resterende 3 subsecties van deze sectie zal ik je 3 meer veelgebruikte PowerShell-paramkenmerken leren. Voor deze 3 attributen hoeft u echter geen argumenten te definiëren.
PowerShell-parameter Alias Attribuut
Het alias-attribuut wordt gebruikt om de aliassen van een parameter op te geven. Zoals je misschien al geraden hebt, kan de alias van een PowerShell-parameter worden gebruikt in plaats van de parameter.
Voordat ik u laat zien hoe u het aliaskenmerk voor een parameter definieert, wil ik u eerst laten zien hoe u aliassen van alle cmdlets en functies op uw computer kunt vinden.
Voer de onderstaande opdracht uit om alle aliassen voor cmdlets en functies weer te geven:
|__+_|Hiermee worden alle aliassen weergegeven...
Verder gaan naar Alias Kenmerk, om er een te definiëren voor een PowerShell-parameterparameter, gebruikt u een code die vergelijkbaar is met die hieronder ...
|__+_| In dit voorbeeld is FP de alias voor de parameter.Als ik dit aan mijn code toevoeg, ziet de bijgewerkte versie er als volgt uit...
|__+_|PowerShell-parameter Ondersteunt Wildcards Attribuut
Dit parameterparameterkenmerk bepaalt of een parameter jokertekens accepteert. Zo definieert u dit attribuut...
|__+_|PowerShell-parameter ValiderenNietNullOfLeeg Validatiekenmerk
Zoals de meeste attributen die al in deze handleiding worden behandeld, verraadt de naam van dit attribuut het ook. Het is een validatieattribuut.
Wanneer u dit kenmerk definieert, accepteert de parameter GEEN null ($null) waarde. Bovendien accepteert het geen lege () waarde.
Als een gebruiker $null, of invoert, zal de functie een foutmelding geven. Voer de onderstaande code in om dit kenmerk te definiëren...
|__+_|Ten slotte zal ik mijn code bijwerken met de laatste 2 attributen ...
|__+_|PowerShell Param-parameternaam
Nadat u alle attributen en argumenten van een parameter hebt gedefinieerd, moet u de parameternaam toevoegen. Een PowerShell-parameterparameter wordt gedefinieerd als een variabele - met een dollarteken ($), gevolgd door de naam van de parameter.
U kunt optioneel ook een gegevenstype voor de parameter invoeren. In sectie 2 van deze handleiding heb ik verschillende soorten PowerShell-parameters besproken.
Hier is hoe u een parameter definieert die kan accepteren: snaar data type.
|__+_|Hier is mijn bijgewerkte codevoorbeeld ...
|__+_|Hoe één PowerShell-parameter in meerdere parametersets te definiëren
Als het coderen van PowerShell-functies nieuw voor u is, is de kans groot dat u in de verleiding komt om één parameter meerdere keren te definiëren.
Een reden waarom u een parameter misschien meerdere keren wilt hebben, is wanneer een parameter wordt gebruikt in meerdere ParameterSetNames (meerdere parametersets).
Laten we zeggen dat u een PowerShell-functie aan het ontwikkelen bent die een Pad parameter. U hebt echter 2 ParameterSetNames waarvoor de parameter Path is vereist.
De meeste mensen die nieuw zijn bij PowerShell-scripting zullen waarschijnlijk de parameters definiëren die hieronder worden weergegeven...
|__+_|Als u de parameters definieert, zoals hierboven weergegeven, krijgt u een foutmelding. Om deze theorie te testen, kopieer ik de code naar PowerShell ISE .
Dus, hoe los je dit op? De oplossing is om de 2 parameterattributen en hun argumenten te definiëren - inclusief hun ParameterSetNames.
Definieer vervolgens aan het einde van beide parameterattributen een enkele parameternaam die gemeenschappelijk is voor beide parameterattributen. In het vorige voorbeeld zal ik de eerste parameternaam verwijderen en de laatste laten staan.
|__+_|Als ik deze code nu naar PowerShell ISE kopieer, komt het goed.
Houd er in dit voorbeeld rekening mee dat de parameterargumenten voor beide parameterattributen totaal verschillend kunnen zijn. Bovendien kunt u zoveel parameterattributen definiëren als u wilt.PowerShell Param-voorbeelden
In dit laatste deel van de handleiding zal ik een realistisch SysAdmin PowerShell-paramvoorbeeld geven.
Terwijl ik deze handleiding aan het schrijven was, begon ik een PowerShell-script/functie te ontwikkelen om de mapgrootte en het aantal bestanden te krijgen. Hier is het param-gedeelte van de functie ...
|__+_|In de volgende paragrafen van deze sectie zal ik de verschillende elementen van de param uitleggen. Ten slotte introduceert de laatste sectie een functieblok en voegt het paramblok toe aan de functie.
Download PowerShellParamExample.zip om het u gemakkelijk te maken de regels in de code waarnaar in de volgende subsecties wordt verwezen te volgen. Pak het bestand vervolgens uit en open het .ps1-bestand in PowerShell ISE .
ParameterSetName PowerShell Param Voorbeeld
Mijn PowerShell-paramvoorbeeldcode heeft drie ParameterSetNames: ToonResultaat , ExportTxt en ExportCSV . Ik heb deze namen gebruikt om het gemakkelijk te maken te identificeren wat ze doen.
In de inleiding van deze sectie heb ik vermeld dat de functie die ik aan het bouwen ben met deze paramcode de mapgrootte en het aantal bestanden voor elke submap in een opgegeven map zal weergeven.
Daarom bieden de drie ParameterSetNames een gebruiker de mogelijkheid om resultaten weer te geven op de PowerShell-console. Als alternatief heeft een gebruiker de mogelijkheid om het resultaat te exporteren naar een tekstbestand of een CSV-bestand.
Verder heeft elke Naam parameterset definieer alle parameters die een gebruiker in een enkele opdracht kan aanroepen. Op basis van dit idee heeft de functie die ik aan het bouwen ben drie opdrachtopties of syntaxis.
hoe je samsung galaxy s5 active sm-g870a root
Ik zal dit idee verder uitwerken in de volgende paragrafen en voorbeelden.
CmdletBinding Attribuut And DefaultParameterSetName Argumentvoorbeelden
In de vorige secties van deze handleiding kwam u de CmdletBinding Attribuut. Bovendien kwam je ook een van zijn argumenten tegen - DefaultParameterSetName .
De DefaultParameterSetName argument wordt gebruikt om de standaard parameterset te definiëren die een functie aanroept. In dit voorbeeld is de standaardnaam van de parameterset ToonResultaat .
De DefaultParameterSetName wordt gedeclareerd in regel 1 van de code.
PowerShell zal proberen de parameterset te gebruiken die is gedeclareerd door de DefaultParameterSetName als het niet kan bepalen welke parameterset moet worden gebruikt. Als u echter verplichte parameters instelt, kunt u dit probleem voorkomen.
In ieder geval kan het geen kwaad om een standaard parametersetnaam te declareren.
Mappad Voorbeeld stringparameter
Dit is waar het plezier begint! De Mappad parameter wordt gebruikt om het mappad in te voeren, de functie krijgt de grootte van zijn submappen - en telt het aantal bestanden in elke submap.
Dit is een stringparameter. Dit betekent dat het elke tekenreeks als invoer accepteert.
Een opwindend kenmerk van de Mappad parameter is dat het gemeenschappelijk is voor de 3 namen van de parameterset. Eerder in dit artikel heb ik de uitdaging uitgelegd waarmee nieuwe PowerShell-scriptontwikkelaars in deze situatie kunnen worden geconfronteerd.
om de . aan te geven Mappad parameter in de drie namen van parametersets, heb ik drie parameterattributen gemaakt.
Het eerste parameterkenmerk bevindt zich tussen regel 5 en 11. Bovendien heeft dit eerste parameterkenmerk meerdere argumenten.
Ik wil echter graag dat u bijzondere aandacht besteedt aan de Naam parameterset argumentatie - ToonResultaat .
Ten tweede heb ik tussen regel 12 en 18 een ander parameterattribuut gedeclareerd met a Naam parameterset argument genaamd ExportTxt .
Ten slotte heb ik tussen regel 19 en 25 een derde parameterattribuut gedeclareerd met a Naam parameterset argument genaamd ExportCSV .
Bovendien, als je merkt dat ik, in tegenstelling tot het declareren van 3 parameterattributen, een single Alias , en ValiderenNietNullOfLeeg attributen. Deze attributen zijn te vinden in regel 26 en 27.
Ten slotte heb ik, net onder alle attributen en hun argumenten, de naam van de parameter opgenomen - Mappad . De parameternaam staat in regel 28.
In de laatste subsectie van deze sectie zult u zien hoe de functie deze parameter weergeeft in 3 opdrachtsyntaxis.ToonResultaat , ExportTxt En ExportCSV Voorbeeld schakelparameter
Vanaf regel 29 van de paramcode heb ik een andere set parameterattributen en hun argumenten gedeclareerd.
Ten eerste, tussen regels 29 en 37, verklaar ik de parameterattributen en argumenten voor de ToonResultaat parameter.
Dan, tussen regel 38 en 47, verklaar ik een andere parameter genaamd ExportTxt .
Ten slotte, tussen regel 48 en 57, verklaarde ik de ExportCSV parameter.
De 3 parameters die ik in deze sectie heb beschreven zijn allemaal: Schakelaar parameters. Zoals u al weet, betekent dit dat de parameters geen invoer van de gebruiker vereisen.
Wanneer een gebruiker een van de parameters selecteert, verandert de functie de manier waarop de resultaten worden weergegeven.
Hoe PowerShell Param te gebruiken in een PowerShell-functie
In deze subsectie wil ik het PowerShell-functieblok in mijn voorbeeldcode introduceren.
De syntaxis van een PowerShell-functieblok is...
|__+_|Voor het laatste voorbeeld in deze handleiding zal ik het PowerShell-paramblok in de syntaxis van de functie vervangen door mijn paramcode uit de laatste subsectie. Bovendien zal ik de functie vervangen door: Get-FolderSizeFileCount , de naam van de functie.
De uiteindelijke functie ziet er nu als volgt uit...
|__+_| Voor dit voorbeeld zijn de blokken Begin {}, Process {} en End {} leeg.Mijn PowerShell-parameters testen in de PowerShell-functie
In deze laatste sectie zal ik de parameters testen in de functie die ik in de laatste sectie heb gemaakt.
Als u het zelf wilt testen, kunt u de code downloaden door op deze link te klikken – Get-FolderSizeFileCount.zip . Pak vervolgens het zip-bestand uit.
Nadat u het bestand hebt uitgepakt, opent u PowerShell en voert u de onderstaande opdracht uit:
|__+_| Ga naar het volledige pad naar het uitgepakte bestand.Wanneer u de opdracht uitvoert, ontvangt u een waarschuwingsbericht. Typ bij de berichtprompt R en druk op de enter-toets op je toetsenbord.
Nadat de module is geïmporteerd, voert u op dezelfde PowerShell-console de onderstaande opdracht uit:
|__+_|Hier is het resultaat van de opdracht...
Wat ik je wil laten zien is de SYNTAX-sectie van de helppagina van mijn functie. In de bovenstaande schermafbeelding kunt u de opdracht Get-FolderSizeFileCount in 3 verschillende opdrachten uitvoeren:
|__+_|Het eerste dat moet worden opgemerkt, is dat de drie syntaxis de hebben Mappad string-parameter. Als u deze handleiding doorleest, weet u waarom.
Bovendien zult u merken dat de eerste syntaxis de . heeft ToonResultaat schakelparameter ook. Ten slotte heb je in de tweede en derde syntaxis de ExportCSV , en ExportTxt schakelparameter respectievelijk.
Naast de Mappad , en ExportCSV parameters en ExportTxt parameters in respectievelijk de tweede en derde syntaxis, ze hebben ook de Rapportpad string-parameter. Ik heb deze parameter niet genoemd omdat de declaratiecode vergelijkbaar is met de Mappad code, met enkele kleine verschillen. De Rapportpad wordt gebruikt om het pad op te geven waarmee de functie de tekst- en CSV-bestandsrapporten zal opslaan.Dat is het - een uitgebreide gids over PowerShell-param! Ik hoop dat je het nuttig vond?
Als je het nuttig vond, stem dan vriendelijk Ja op de Was dit bericht Nuttige vraag hieronder.
U kunt ook een vraag stellen, een opmerking achterlaten of meer feedback geven met het formulier 'Een antwoord achterlaten' aan het einde van deze pagina.
Bezoek ten slotte onze Windows PowerShell How-To-gidspagina voor meer PowerShell tech S-zones. Misschien vindt u onze pagina Werken vanaf de startpagina ook erg nuttig.


