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 eines Decks von Karte s.
  • 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 und Get-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. oder AllScope.

    New-Alias -Option ReadOnly
    

Weitere Informationen