Dela via


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.

Se även