Om parametrar
Kort beskrivning
Beskriver hur du arbetar med kommandoparametrar i PowerShell.
Lång beskrivning
De flesta PowerShell-kommandon, till exempel cmdletar, funktioner och skript, förlitar sig på parametrar som gör att användarna kan välja alternativ eller ange indata. Parametrarna följer kommandonamnet och har följande formulär:
-<parameter_name> <parameter_value>
-<parameter_name>:<parameter_value>
Namnet på parametern föregås av ett bindestreck (-), som signalerar till PowerShell att ordet som följer bindestrecket är ett parameternamn. Parameternamnet och värdet kan avgränsas med ett blanksteg eller ett kolontecken. Vissa parametrar kräver eller accepterar inte ett parametervärde. Andra parametrar kräver ett värde, men kräver inte parameternamnet i kommandot.
Typen av parametrar och kraven för dessa parametrar varierar. Om du vill hitta information om parametrarna för ett kommando använder du cmdleten Get-Help
. Om du till exempel vill hitta information om parametrarna för cmdleten Get-ChildItem
skriver du:
Get-Help Get-ChildItem
Om du vill hitta information om parametrarna för ett skript använder du den fullständiga sökvägen till skriptfilen. Exempel:
Get-Help $home\Documents\Scripts\Get-Function.ps1
Cmdleten Get-Help
returnerar olika detaljer om kommandot, inklusive en beskrivning, kommandosyntaxen, information om parametrarna och exempel som visar hur du använder parametrarna i ett kommando.
Du kan också använda parameterparametern för cmdleten Get-Help
för att hitta information om en viss parameter. Du kan också använda parameterparametern med jokertecknet ( *
) för att hitta information om alla parametrar i kommandot. Följande kommando hämtar till exempel information om alla parametrar i cmdleten Get-Member
:
Get-Help Get-Member -Parameter *
Standardparametervärden
Valfria parametrar har ett standardvärde, vilket är det värde som används eller antas när parametern inte anges i kommandot.
Standardvärdet för parametern ComputerName för många cmdletar är till exempel namnet på den lokala datorn. Det innebär att namnet på den lokala datorn används i kommandot såvida inte parametern ComputerName har angetts.
Information om hur du hittar standardparametervärdet finns i hjälpavsnittet för cmdleten. Parameterbeskrivningen bör innehålla standardvärdet.
Du kan också ange ett anpassat standardvärde för valfri parameter för en cmdlet eller avancerad funktion. Information om hur du anger anpassade standardvärden finns i about_Parameters_Default_Values.
Parameterattributtabell
När du använder parametrarna Fullständig, Parameter eller Online för cmdleten Get-Help
Get-Help
visar en parameterattributtabell med detaljerad information om parametern.
Den här informationen innehåller information som du behöver veta för att använda parametern.
Hjälpavsnittet för cmdleten Get-ChildItem
innehåller till exempel följande information om parametern Path:
-path <string[]>
Specifies a path of one or more locations. Wildcard characters are
permitted. The default location is the current directory (.).
Required? false
Position? 0
Default value Current directory
Accept pipeline input? true (ByValue, ByPropertyName)
Accept wildcard characters? true
Parameterinformationen innehåller parametersyntaxen, en beskrivning av parametern och parameterattributen. I följande avsnitt beskrivs parameterattributen.
Parameter krävs
Den här inställningen anger om parametern är obligatorisk, d.v.s. om alla kommandon som använder den här cmdleten måste innehålla den här parametern. När värdet är Sant och parametern saknas i kommandot uppmanar PowerShell dig att ange ett värde för parametern.
Parameterposition
Om inställningen Position
är inställd på ett positivt heltal krävs inte parameternamnet. Den här typen av parameter kallas för en positionsparameter och talet anger den position där parametern måste visas i förhållande till andra positionsparametrar. En namngiven parameter kan anges i valfri position efter cmdletens namn. Om du inkluderar parameternamnet för en positionsparameter kan parametern anges i valfri position efter cmdletens namn.
Cmdleten har till exempel parametrarna Get-ChildItem
Path och Exclude. Inställningen Position
för Path är 0, vilket innebär att det är en positionsparameter. Inställningen Position
för Exkluderaär namngiven.
Det innebär att sökvägen inte kräver parameternamnet, men dess parametervärde måste vara det första eller enda namnlösa parametervärdet i kommandot. Men eftersom parametern Exclude är en namngiven parameter kan du placera den i valfri position i kommandot .
Som ett resultat av Position
inställningarna för dessa två parametrar kan du använda något av följande kommandon:
Get-ChildItem -Path c:\techdocs -Exclude *.ppt
Get-ChildItem c:\techdocs -Exclude *.ppt
Get-ChildItem -Exclude *.ppt -Path c:\techdocs
Get-ChildItem -Exclude *.ppt c:\techdocs
Om du skulle inkludera en annan positionsparameter utan att inkludera parameternamnet måste parametern placeras i den ordning som anges av inställningen Position
.
Parametertyp
Den här inställningen anger Microsoft .NET Framework typ av parametervärde. Om typen till exempel är Int32 måste parametervärdet vara ett heltal. Om typen är sträng måste parametervärdet vara en teckensträng. Om strängen innehåller blanksteg måste värdet omges av citattecken, eller så måste blankstegen föregås av escape-tecknet ( ' ).
Standardvärde
Den här inställningen anger det värde som parametern förutsätter om inget annat värde anges. Standardvärdet för parametern Path är till exempel ofta den aktuella katalogen. Obligatoriska parametrar har aldrig något standardvärde. För många valfria parametrar finns det ingen standard eftersom parametern inte har någon effekt om den inte används.
Accepterar flera värden
Den här inställningen anger om en parameter accepterar flera parametervärden. När en parameter accepterar flera värden kan du ange en kommaavgränsad lista som värdet för parametern i kommandot eller spara en kommaavgränsad lista (en matris) i en variabel och sedan ange variabeln som parametervärde.
Till exempel accepterar parametern ServiceName för cmdleten Get-Service
flera värden. Följande kommandon är båda giltiga:
Get-Service -servicename winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -servicename $s
Accepterar pipelineindata
Den här inställningen anger om du kan använda pipelineoperatorn ( |
) för att skicka ett värde till parametern.
Value Description
----- -----------
False Indicates that you cannot pipe a value to the
parameter.
True (by Value) Indicates that you can pipe any value to the
parameter, just so the value has the .NET
Framework type specified for the parameter or the
value can be converted to the specified .NET
Framework type.
När en parameter är "Sant (efter värde)" försöker PowerShell associera alla pipade värden med parametern innan den försöker tolka kommandot med andra metoder.
True (by Property Name) Indicates that you can pipe a value to the
parameter, but the .NET Framework type of the
parameter must include a property with the same
name as the parameter.
Du kan till exempel bara skicka ett värde till en namnparameter när värdet har en egenskap med namnet Namn.
Anteckning
En typad parameter som accepterar pipelineindata (by Value
) eller (by PropertyName
) möjliggör användning av skriptblock med fördröjningsbindning på parametern.
Skriptblocket för fördröjningsbindning körs automatiskt under ParameterBinding. Resultatet är bundet till parametern. Fördröjningsbindning fungerar inte för parametrar som definierats som typ ScriptBlock
eller System.Object
, skriptblocket skickas utan att anropas.
Du kan läsa om fördröjningsbindningsskriptblock här about_Script_Blocks.md
Accepterar jokertecken
Den här inställningen anger om parameterns värde kan innehålla jokertecken så att parametervärdet kan matchas mot fler än ett befintligt objekt i målcontainern.
Vanliga parametrar
Vanliga parametrar är parametrar som du kan använda med valfri cmdlet. Mer information om vanliga parametrar finns i about_CommonParameters.