about_Command_Syntax
Kurze Beschreibung
Beschreibt die Syntaxdiagramme, die in PowerShell verwendet werden.
Lange Beschreibung
Mit den Cmdlets "Get-Help " und "Get-Command " werden Syntaxdiagramme angezeigt, mit denen Sie Befehle richtig erstellen können. In diesem Artikel wird erläutert, wie Sie die Syntaxdiagramme interpretieren.
Abrufen der Syntax für einen Befehl
Es gibt zwei Möglichkeiten zum Abrufen der Syntax für einen Befehl: Get-Help
und Get-Command
.
Get-Command
Der Get-Command
Befehl kann verwendet werden, um Informationen zu jedem beliebigen Befehl auf Ihrem System abzurufen. Verwenden Sie den Syntaxparameter , um die Syntax für einen Befehl abzurufen.
Get-Command Get-Command -Syntax
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>] [-Noun <string[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-TotalCount <int>] [-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax] [-ShowCommandInfo]
[-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [-UseFuzzyMatching]
[-FuzzyMinimumDistance <uint>] [-UseAbbreviationExpansion]
[<CommonParameters>]
Get-Help
Der Get-Help
Befehl enthält detaillierte Informationen zu PowerShell-Befehlen, einschließlich Syntax, detaillierte Beschreibung des Cmdlets und der Parameter sowie Beispiele. Der Ausgabebefehl Get-Help
beginnt mit einer kurzen Beschreibung des Befehls, gefolgt von der Syntax.
Get-Help Get-Command
Die folgende Ausgabe wurde gekürzt, um sich auf die Syntaxbeschreibung zu konzentrieren.
NAME
Get-Command
SYNOPSIS
Gets all commands.
SYNTAX
Get-Command [[-Name] <System.String[]>] [[-ArgumentList] <System.Object[]>]
[-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript |
Application | Script | Workflow | Configuration | All}]
[-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>]
[-ListImported] [-Module <System.String[]>] [-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[-UseAbbreviationExpansion] [-UseFuzzyMatching] [<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All]
[-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>]
[-ListImported] [-Module <System.String[]>] [-Noun <System.String[]>]
[-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[-Verb <System.String[]>] [<CommonParameters>]
...
Die Ausgabe unterscheidet Get-Help
sich geringfügig von der Ausgabe von Get-Command
. Beachten Sie den Unterschied in der Syntax für den CommandType-Parameter . Get-Command
zeigt den Parametertyp als [CommandTypes]
Enumeration an, während Get-Help
die möglichen Werte für die Enumeration angezeigt werden.
Parametersätze
Die Parameter eines PowerShell-Befehls werden in Parametersätzen aufgeführt. Ein PowerShell-Befehl kann einen oder mehrere Parametersätze aufweisen. Das Get-Command
Cmdlet verfügt über zwei Parametersätze, wie in den vorherigen Beispielen gezeigt.
Einige der Cmdlet-Parameter sind für einen Parametersatz eindeutig, und andere werden in mehreren Parametersätzen angezeigt. Jeder Parametersatz stellt das Format für einen gültigen Befehl dar. Ein Parametersatz enthält nur Parameter, die in einem Befehl zusammen verwendet werden können. Wenn Parameter nicht im selben Befehl verwendet werden können, werden sie in separaten Parametersätzen aufgeführt.
Das Cmdlet "Get-Random" verfügt beispielsweise über die folgenden Parametersätze:
$cmd = Get-Command Get-Random
$cmd.ParameterSets |
Select-Object Name, IsDefault, @{n='Parameters';e={$_.ToString()}} |
Format-Table -Wrap
Name IsDefault Parameters
---- --------- ----------
RandomNumberParameterSet True [[-Maximum] <Object>] [-SetSeed <int>]
[-Minimum <Object>] [-Count <int>]
[<CommonParameters>]
RandomListItemParameterSet False [-InputObject] <Object[]> [-SetSeed <int>]
[-Count <int>] [<CommonParameters>]
ShuffleParameterSet False [-InputObject] <Object[]> -Shuffle
[-SetSeed <int>] [<CommonParameters>]
- Der erste Parametersatz gibt eine oder mehrere Zufallszahlen zurück und weist die Parameter Minimum, Maximum und Count auf.
- Der zweite Parametersatz gibt ein zufällig ausgewähltes Objekt aus einer Gruppe von Objekten zurück und enthält die Parameter InputObject und Count .
- Der dritte Parametersatz weist den Shuffle-Parameter auf, der eine Auflistung von Objekten in einer zufälligen Reihenfolge zurückgibt, z. B. das Shuffling a deck of cards.
- Alle Parametersätze weisen den Parameter SetSeed und die allgemeinen Parameter auf.
Diese Parametersätze zeigen, dass Sie die Parameter InputObject und Count im selben Befehl verwenden können, aber Sie können die Parameter "Maximum" und "Shuffle" nicht zusammen verwenden.
Jedes Cmdlet verfügt auch über einen Standardparametersatz. Der Standardparametersatz wird verwendet, wenn Sie keine Parameter angeben, die für einen Parametersatz eindeutig sind. Wenn Sie z. B. ohne Parameter verwenden Get-Random
, geht PowerShell davon aus, dass Sie den Parameter "RandomNumberParameterSet " verwenden und eine Zufallszahl zurückgeben.
Symbole in Syntaxdiagrammen
Das Syntaxdiagramm enthält den Befehlsnamen, die Befehlsparameter und die Parameterwerte.
Die Syntaxdiagramme verwenden die folgenden Symbole:
Ein Bindestrich
-
gibt einen Parameternamen an. Geben Sie in einem Befehl den Bindestrich unmittelbar vor dem Parameternamen ohne dazwischen liegende Leerzeichen ein, wie im Syntaxdiagramm dargestellt.Verwenden Sie z. B. den Parameter Name von
Get-Command
, typ:Get-Command -Name
.
Winkelklammern
< >
geben Platzhaltertext an. Sie geben die eckigen Klammern oder den Platzhaltertext nicht in einen Befehl ein. Stattdessen ersetzen Sie es durch das element, das es beschreibt.Der Platzhalter in den winkeln Klammern identifiziert den .NET-Typ des Werts, den ein Parameter verwendet. Wenn Sie z. B. den Parameter Name des
Get-Command
Cmdlets verwenden möchten, ersetzen Sie die<string[]>
durch Kommas (,
) getrennten Zeichenfolgen durch eine oder mehrere Zeichenfolgen.
An einen .NET-Typ angefügte Klammern geben an, dass der Parameter einen oder mehrere Werte dieses Typs
[]
akzeptieren kann. Geben Sie die Werte als durch Trennzeichen getrennte Liste ein.Die Parameter "Name" und "Value" des
New-Alias
Cmdlets verwenden beispielsweise jeweils nur eine Zeichenfolge.New-Alias [-Name] <string> [-Value] <string>
New-Alias -Name MyAlias -Value mycommand.exe
Der Name-Parameter von "Get-Process " kann jedoch eine oder mehrere Zeichenfolgen annehmen.
Get-Process [-Name] <string[]>
Get-Process -Name Explorer, Winlogon, Services
Parameter ohne Werte
Einige Parameter akzeptieren keine Eingabe, sodass sie keinen Parameterwert haben. Parameter ohne Werte sind Schalterparameter. Switch-Parameter werden wie boolesche Werte verwendet. Sie sind standardmäßig auf
$false
. Wenn Sie einen Switch-Parameter verwenden, wird der Wert auf$true
.Der Parameter "ListImported" von
Get-Command
beispielsweise ist ein Switch-Parameter. Wenn Sie den Parameter ListImported verwenden, gibt das Cmdlet nur Befehle zurück, die aus Modulen in der aktuellen Sitzung importiert wurden.Get-Command [-ListImported]
Eckige Klammern
[ ]
um Parameter geben optionale Elemente an. Ein Parameter und sein Wert können optional sein. Der CommandType-Parameter undGet-Command
dessen Wert werden beispielsweise in eckige Klammern eingeschlossen, da beide optional sind.Get-Command [-CommandType <CommandTypes>]
Klammern um den Parameternamen, aber nicht den Parameterwert, geben an, dass der Parametername optional ist. Diese Parameter werden als Positionsparameter bezeichnet. Die Parameterwerte müssen in der richtigen Reihenfolge angezeigt werden, damit die Werte an den richtigen Parameter gebunden werden.
Für das
New-Alias
Cmdlet sind beispielsweise die Parameterwerte Name und Value erforderlich, aber die Parameternamen-Name
und-Value
, sind optional.New-Alias [-Name] <string> [-Value] <string>
New-Alias MyAlias mycommand.exe
In jedem Parametersatz werden die Parameter in der Positionsreihenfolge angezeigt. Die Reihenfolge der Parameter in einem Befehl ist nur dann wichtig, wenn Sie die optionalen Parameternamen weglassen. Wenn Parameternamen weggelassen werden, weist PowerShell Parametern Werte nach Position und Typ zu. Weitere Informationen zur Parameterposition finden Sie unter about_Parameters.
Geschweifte Klammern
{}
geben eine "Aufzählung" an, bei der es sich um einen Satz gültiger Werte für einen Parameter handelt.Die Werte in den geschweiften Klammern werden durch vertikale Balken
|
getrennt. Diese Balken geben eine exklusive ODER-Auswahl an, was bedeutet, dass Sie nur einen Wert aus der Gruppe von Werten auswählen können, die in den geschweiften Klammern aufgeführt sind.Die Syntax für das
New-Alias
Cmdlet enthält z. B. die folgende Wertenumeration für den Parameter Option :New-Alias -Option {None | ReadOnly | Constant | Private | AllScope}
Die geschweiften und vertikalen Balken geben an, dass Sie einen der aufgelisteten Werte für den Parameter Option auswählen können, z
ReadOnly
. B. oderAllScope
.New-Alias -Option ReadOnly