Dela via


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-HelpGet-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.

Se även

about_Command_syntax

about_Comment_Based_Help

about_Functions_Advanced

about_Parameters_Default_Values

about_Pipelines

about_Wildcards