Freigeben über


about_Command_Syntax

Kurze Beschreibung

Beschreibt die Syntaxdiagramme, die in PowerShell verwendet werden.

Lange Beschreibung

Die Cmdlets Get-Help und Get-Command zeigen Syntaxdiagramme an, damit Sie Befehle ordnungsgemäß 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, die Syntax für einen Befehl abzurufen: Get-Help und Get-Command.

Get-Command

Der Get-Command Befehl kann verwendet werden, um Informationen zu einem beliebigen Befehl auf Ihrem System abzurufen. Verwenden Sie den Syntax-Parameter , 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 ausführliche Informationen zu PowerShell-Befehlen, einschließlich Syntax, detaillierter 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 von Get-Help unterscheidet 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 über einen oder mehrere Parametersätze verfügen. 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, 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 zusammen in einem Befehl verwendet werden können. Wenn Parameter nicht im gleichen 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 verfügt über die Parameter Minimum, Maximum und Count .
  • 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 verfügt über den Shuffle-Parameter , der eine Auflistung von Objekten in einer zufälligen Reihenfolge zurückgibt, z. B. das Mischen eines Kartenstapels.
  • Alle Parametersätze verfügen über den Parameter SetSeed und die allgemeinen Parameter.

Diese Parametersätze zeigen, dass Sie die Parameter InputObject und Count im gleichen Befehl verwenden können, aber Sie können die Parameter Maximum und Shuffle nicht zusammen verwenden.

Jedes Cmdlet verfügt außerdem über einen Standardparametersatz. Der Standardparametersatz wird verwendet, wenn Sie keine Parameter angeben, die für einen Parametersatz eindeutig sind. Wenn Sie beispielsweise ohne Parameter verwenden Get-Random , geht PowerShell davon aus, dass Sie den RandomNumberParameterSet-Parametersatz verwenden und eine Zufallszahl zurückgibt.

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.

    Um beispielsweise den Name-Parameter von Get-Commandzu verwenden, geben Sie Folgendes ein: Get-Command -Name.

  • Spitzen Klammern < > geben Platzhaltertext an. Sie geben die spitzen Klammern oder den Platzhaltertext in einem Befehl nicht ein. Stattdessen ersetzen Sie es durch das Element, das darin beschrieben wird.

    Der Platzhalter in den spitzen Klammern identifiziert den .NET-Typ des Werts, den ein Parameter verwendet. Wenn Sie beispielsweise den Name-Parameter des Get-Command Cmdlets verwenden möchten, ersetzen Sie durch <string[]> eine oder mehrere durch Kommas getrennte 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.

    Beispielsweise nehmen die Parameter Name und Value des New-Alias Cmdlets jeweils nur eine Zeichenfolge an.

    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 Switchparameter. Switch-Parameter werden wie boolesche Werte verwendet. Sie sind standardmäßig auf $falsefestgelegt. Wenn Sie einen switch-Parameter verwenden, wird der Wert auf $truefestgelegt.

    Der ListImported-Parameter von Get-Command ist beispielsweise 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]
    
  • Klammern [ ] um Parameter geben optionale Elemente an. Ein Parameter und sein Wert können optional sein. Beispielsweise werden der CommandType-Parameter von Get-Command und sein Wert in 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 dargestellt werden, damit die Werte an den richtigen Parameter gebunden werden.

    Beispielsweise sind für das New-Alias Cmdlet die Parameterwerte Name und Value erforderlich, aber die Parameternamen -Name und -Valuesind optional.

    New-Alias [-Name] <string> [-Value] <string>
    
    New-Alias MyAlias mycommand.exe
    

    In jedem Parametersatz werden die Parameter in der Reihenfolge der Position angezeigt. Die Reihenfolge der Parameter in einem Befehl ist nur 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 "Enumeration" 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 exclusive-OR-Auswahl an, was bedeutet, dass Sie nur einen Wert aus dem Satz von Werten auswählen können, die in den geschweiften Klammern aufgeführt sind.

    Die Syntax für das New-Alias Cmdlet enthält beispielsweise 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 beliebigen der aufgelisteten Werte für den Option-Parameter auswählen können, z ReadOnly . B. oder AllScope.

    New-Alias -Option ReadOnly
    

Weitere Informationen