Share 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 efter 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 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. 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.

Tabell med parameterattribut

När du använder parametrarna Fullständig, Parameter eller Online för cmdleten Get-HelpGet-Help visas en parameterattributtabell med detaljerad information om parametern.

Den här informationen innehåller den information som du behöver känna till 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 True och parametern saknas i kommandot frågar PowerShell efter 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 i vilken position parametern måste visas i förhållande till andra positionsparametrar. En namngiven parameter kan visas på valfri plats efter cmdletens namn. 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 Exkluderahar 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 på valfri plats 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 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, annars 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 Name 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 "True (by Value)" försöker PowerShell associera alla piped-värden med den 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 endast skicka ett värde till en Name-parameter när värdet har en egenskap som heter Namn.

Anteckning

En typifierad parameter som accepterar pipelineindata (by Value) eller (by PropertyName) möjliggör användning av skriptblock med fördröjd bindning 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