about_Parameters
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 cmdletens Get-ChildItem
parametrar skriver du:
Get-Help Get-ChildItem
Om du vill hitta information om parametrarna i ett skript använder du den fullständiga sökvägen till skriptfilen. Till 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. Därför används det lokala datornamnet 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 Full, Parameter eller Online i cmdleten Get-Help
Get-Help
visas 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 denna cmdlet 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 är inställd på Position
ett icke-negativt 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 visas i valfri position efter cmdlet-namnet. Om du inkluderar parameternamnet för en positionsparameter kan parametern visas i valfri position efter cmdlet-namnet.
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 har namnet .
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 den parametern placeras i den ordning som anges av Position
inställningen.
Parametertyp
Den här inställningen anger parametervärdets Microsoft .NET Framework-typ. 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 ett standardvärde. För många valfria parametrar finns det inget standardvärde 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 skriva 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.
Parametern Namn för cmdleten Get-Service
accepterar till exempel flera värden. Följande kommandon är båda giltiga:
Get-Service -Name winrm, netlogon
$s = "winrm", "netlogon"
Get-Service -Name $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 eventuella piped-värden med parametern innan den försöker använda andra metoder för att tolka kommandot.
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.
Kommentar
En angiven 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 skriptblock med fördröjningsbindning 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.