Informationen zu automatischen VariablenAbout Automatic Variables

Kurze BeschreibungShort description

Beschreibt Variablen, die Zustandsinformationen für PowerShell speichern.Describes variables that store state information for PowerShell. Diese Variablen werden von PowerShell erstellt und verwaltet.These variables are created and maintained by PowerShell.

Lange BeschreibungLong description

Konzeptionell werden diese Variablen als schreibgeschützt betrachtet.Conceptually, these variables are considered to be read-only. Obwohl Sie in geschrieben werden können , sollten Sie aus Gründen der Abwärtskompatibilität nicht in schreiben.Even though they can be written to, for backward compatibility they should not be written to.

Im folgenden finden Sie eine Liste der automatischen Variablen in PowerShell:Here is a list of the automatic variables in PowerShell:

$$

Enthält das letzte Token in der letzten Zeile, die von der Sitzung empfangen wurde.Contains the last token in the last line received by the session.

$?$?

Enthält den Ausführungs Status des letzten Befehls.Contains the execution status of the last command. Sie enthält true , wenn der letzte Befehl erfolgreich war, und false , wenn Sie fehlgeschlagen ist.It contains True if the last command succeeded and False if it failed.

Für Cmdlets und erweiterte Funktionen, die auf mehreren Stufen in einer Pipeline ausgeführt werden (z. b. sowohl in process -als auch in- end Blöcken), wird der Aufruf this.WriteError() von bzw $PSCmdlet.WriteError() . an einem beliebigen Punkt $? auf false festgelegt, wie this.ThrowTerminatingError() und $PSCmdlet.ThrowTerminatingError() .For cmdlets and advanced functions that are run at multiple stages in a pipeline, for example in both process and end blocks, calling this.WriteError() or $PSCmdlet.WriteError() respectively at any point will set $? to False, as will this.ThrowTerminatingError() and $PSCmdlet.ThrowTerminatingError().

Das Write-Error Cmdlet legt $? nach der Ausführung immer false fest, wird jedoch nicht auf false festgelegt, $? Wenn eine Funktion aufgerufen wird: The Write-Error cmdlet always sets $? to False immediately after it is executed, but will not set $? to False for a function calling it:

function Test-WriteError
{
    Write-Error "Bad"
    $? # $false
}

Test-WriteError
$? # $true

Zum letzteren Zweck $PSCmdlet.WriteError() sollte stattdessen verwendet werden.For the latter purpose, $PSCmdlet.WriteError() should be used instead.

Bei nativen Befehlen (ausführbare Dateien) $? wird auf true festgelegt, wenn den $LASTEXITCODE Wert 0 hat, und auf false festgelegt, wenn $LASTEXITCODE ein beliebiger anderer Wert ist.For native commands (executables), $? is set to True when $LASTEXITCODE is 0, and set to False when $LASTEXITCODE is any other value.

Hinweis

Bis PowerShell 7, das eine-Anweisung in Klammern enthält (...) , wird die Teil Ausdruck-Syntax $(...) oder der Array Ausdruck @(...) immer $? auf true zurückgesetzt, sodass (Write-Error) $? als true angezeigt wird.Until PowerShell 7, containing a statement within parentheses (...), subexpression syntax $(...) or array expression @(...) always reset $? to True, so that (Write-Error) shows $? as True. Dies wurde in PowerShell 7 geändert, sodass $? immer den tatsächlichen Erfolg der letzten Befehlsausführung in diesen Ausdrücken widerspiegelt.This has been changed in PowerShell 7, so that $? will always reflect the actual success of the last command run in these expressions.

$^

Enthält das erste Token in der letzten Zeile, die von der Sitzung empfangen wurde.Contains the first token in the last line received by the session.

$$

Wie in $PSItem.Same as $PSItem. Enthält das aktuelle-Objekt im Pipeline Objekt.Contains the current object in the pipeline object. Sie können diese Variable in Befehlen verwenden, die eine Aktion für jedes Objekt oder für ausgewählte Objekte in einer Pipeline ausführen.You can use this variable in commands that perform an action on every object or on selected objects in a pipeline.

$args$args

Enthält ein Array von Werten für nicht deklarierte Parameter, die an eine Funktion, ein Skript oder einen Skriptblock übermittelt werden.Contains an array of values for undeclared parameters that are passed to a function, script, or script block. Wenn Sie eine Funktion erstellen, können Sie die Parameter mit dem- param Schlüsselwort deklarieren oder indem Sie eine durch Trennzeichen getrennte Liste von Parametern nach dem Funktionsnamen in Klammern einfügen.When you create a function, you can declare the parameters by using the param keyword or by adding a comma-separated list of parameters in parentheses after the function name.

In einer Ereignis Aktion enthält die- $args Variable-Objekte, die die Ereignis Argumente des zu verarbeitenden Ereignisses darstellen.In an event action, the $args variable contains objects that represent the event arguments of the event that is being processed. Diese Variable wird nur innerhalb des Action Blocks eines Ereignis Registrierungs Befehls aufgefüllt.This variable is populated only within the Action block of an event registration command. Der Wert dieser Variablen befindet sich auch in der sourceargs -Eigenschaft des psiebargs -Objekts, das Get-Event zurückgibt.The value of this variable can also be found in the SourceArgs property of the PSEventArgs object that Get-Event returns.

$ConsoleFileName$ConsoleFileName

Enthält den Pfad der Konsolen Datei ( .psc1 ), die zuletzt in der Sitzung verwendet wurde.Contains the path of the console file (.psc1) that was most recently used in the session. Diese Variable wird aufgefüllt, wenn Sie PowerShell mit dem PsConsoleFile -Parameter starten oder wenn Sie das Export-Console Cmdlet verwenden, um Snap-in-Namen in eine Konsolen Datei zu exportieren.This variable is populated when you start PowerShell with the PSConsoleFile parameter or when you use the Export-Console cmdlet to export snap-in names to a console file.

Wenn Sie das Export-Console Cmdlet ohne Parameter verwenden, wird automatisch die Konsolen Datei aktualisiert, die zuletzt in der Sitzung verwendet wurde.When you use the Export-Console cmdlet without parameters, it automatically updates the console file that was most recently used in the session. Sie können diese automatische Variable verwenden, um zu bestimmen, welche Datei aktualisiert wird.You can use this automatic variable to determine which file will be updated.

$Error$Error

Enthält ein Array von Fehler Objekten, die die letzten Fehler darstellen.Contains an array of error objects that represent the most recent errors. Der letzte Fehler ist das erste Fehler Objekt im Array $Error[0] .The most recent error is the first error object in the array $Error[0].

Um zu verhindern, dass dem Array ein Fehler hinzugefügt wird $Error , verwenden Sie den allgemeinen ErrorAction -Parameter mit dem Wert Ignore.To prevent an error from being added to the $Error array, use the ErrorAction common parameter with a value of Ignore. Weitere Informationen findest du unter about_CommonParameters.For more information, see about_CommonParameters.

$Event$Event

Enthält ein peventargs -Objekt, das das Ereignis darstellt, das gerade verarbeitet wird.Contains a PSEventArgs object that represents the event that is being processed. Diese Variable wird nur innerhalb des Action Blocks eines Ereignis Registrierungs Befehls (z. b.) aufgefüllt Register-ObjectEvent .This variable is populated only within the Action block of an event registration command, such as Register-ObjectEvent. Der Wert dieser Variablen ist das gleiche Objekt, das vom Get-Event Cmdlet zurückgegeben wird.The value of this variable is the same object that the Get-Event cmdlet returns. Daher können Sie die Eigenschaften der Event Variablen (z. b.) $Event.TimeGenerated in einem Action Skriptblock verwenden.Therefore, you can use the properties of the Event variable, such as $Event.TimeGenerated, in an Action script block.

$EventArgs$EventArgs

Enthält ein-Objekt, das das erste Ereignis Argument darstellt, das von EventArgs des-Ereignisses abgeleitet wird, das gerade verarbeitet wird.Contains an object that represents the first event argument that derives from EventArgs of the event that is being processed. Diese Variable wird nur innerhalb des Action Blocks eines Ereignis Registrierungs Befehls aufgefüllt.This variable is populated only within the Action block of an event registration command. Der Wert dieser Variablen befindet sich auch in der sourceeventargs -Eigenschaft des peventargs -Objekts, das Get-Event zurückgibt.The value of this variable can also be found in the SourceEventArgs property of the PSEventArgs object that Get-Event returns.

$EventSubscriber$EventSubscriber

Enthält ein peventsubscriber -Objekt, das den Ereignis Abonnenten des-Ereignisses darstellt, das gerade verarbeitet wird.Contains a PSEventSubscriber object that represents the event subscriber of the event that is being processed. Diese Variable wird nur innerhalb des Action Blocks eines Ereignis Registrierungs Befehls aufgefüllt.This variable is populated only within the Action block of an event registration command. Der Wert dieser Variablen ist das gleiche Objekt, das vom Get-EventSubscriber Cmdlet zurückgegeben wird.The value of this variable is the same object that the Get-EventSubscriber cmdlet returns.

$ExecutionContext$ExecutionContext

Enthält ein engineintrinsics -Objekt, das den Ausführungs Kontext des PowerShell-Hosts darstellt.Contains an EngineIntrinsics object that represents the execution context of the PowerShell host. Sie können diese Variable verwenden, um die für Cmdlets verfügbaren Ausführungs Objekte zu finden.You can use this variable to find the execution objects that are available to cmdlets.

$false$false

Enthält false.Contains False. Sie können diese Variable verwenden, um false in Befehlen und Skripts darzustellen, anstatt die Zeichenfolge "false" zu verwenden.You can use this variable to represent False in commands and scripts instead of using the string "false". Die Zeichenfolge kann als true interpretiert werden, wenn Sie in eine nicht leere Zeichenfolge oder in eine ganze Zahl ungleich 0 (null) konvertiert wird.The string can be interpreted as True if it's converted to a non-empty string or to a non-zero integer.

$foreach$foreach

Enthält den Enumerator (nicht die resultierenden Werte) einer foreach -Schleife.Contains the enumerator (not the resulting values) of a ForEach loop. Die $ForEach Variable ist nur vorhanden, während die ForEach Schleife ausgeführt wird. Sie wird gelöscht, nachdem die Schleife abgeschlossen wurde.The $ForEach variable exists only while the ForEach loop is running; it's deleted after the loop is completed.

Enumeratoren enthalten Eigenschaften und Methoden, mit denen Sie Schleifen Werte abrufen und die aktuelle Schleifen Iterationen ändern können.Enumerators contain properties and methods you can use to retrieve loop values and change the current loop iteration. Weitere Informationen finden Sie unter Verwenden von Enumeratoren.For more information, see Using Enumerators.

$HOME$HOME

Enthält den vollständigen Pfad des Basisverzeichnisses des Benutzers.Contains the full path of the user's home directory. Diese Variable entspricht in der Regel den "$env:homedrive$env:homepath" Windows-Umgebungsvariablen C:\Users\<UserName> .This variable is the equivalent of the "$env:homedrive$env:homepath" Windows environment variables, typically C:\Users\<UserName>.

$Host$Host

Enthält ein-Objekt, das die aktuelle Host Anwendung für PowerShell darstellt.Contains an object that represents the current host application for PowerShell. Sie können diese Variable verwenden, um den aktuellen Host in Befehlen darzustellen oder um die Eigenschaften des Hosts (z. b. oder) anzuzeigen oder zu ändern $Host.version $Host.CurrentCulture $host.ui.rawui.setbackgroundcolor("Red") .You can use this variable to represent the current host in commands or to display or change the properties of the host, such as $Host.version or $Host.CurrentCulture, or $host.ui.rawui.setbackgroundcolor("Red").

$input$input

Enthält einen Enumerator, der alle Eingaben auflistet, die an eine Funktion weitergegeben werden.Contains an enumerator that enumerates all input that is passed to a function. Die $input -Variable ist nur für Funktionen und Skriptblöcke verfügbar (bei denen es sich um unbenannte Funktionen handelt).The $input variable is available only to functions and script blocks (which are unnamed functions).

  • In einer Funktion ohne einen- Begin ,- Process oder- End Block $input Listet die-Variable die Auflistung aller Eingaben für die Funktion auf.In a function without a Begin, Process, or End block, the $input variable enumerates the collection of all input to the function.

  • Im- Begin Block enthält die- $input Variable keine Daten.In the Begin block, the $input variable contains no data.

  • Im- Process Block enthält die- $input Variable das-Objekt, das sich zurzeit in der Pipeline befindet.In the Process block, the $input variable contains the object that is currently in the pipeline.

  • Im- End Block listet die- $input Variable die Auflistung aller Eingaben für die-Funktion auf.In the End block, the $input variable enumerates the collection of all input to the function.

    Hinweis

    Sie können die $input Variable nicht innerhalb des Prozess Blocks und des endblocks in derselben Funktion oder in demselben Skriptblock verwenden.You cannot use the $input variable inside both the Process block and the End block in the same function or script block.

Da $input ein Enumerator ist, bewirkt der Zugriff auf eine der Eigenschaften, dass $input nicht mehr verfügbar ist.Since $input is an enumerator, accessing any of it's properties causes $input to no longer be available. Sie können $input in einer anderen Variablen speichern, um die Eigenschaften wiederzuverwenden $input .You can store $input in another variable to reuse the $input properties.

Enumeratoren enthalten Eigenschaften und Methoden, mit denen Sie Schleifen Werte abrufen und die aktuelle Schleifen Iterationen ändern können.Enumerators contain properties and methods you can use to retrieve loop values and change the current loop iteration. Weitere Informationen finden Sie unter Verwenden von Enumeratoren.For more information, see Using Enumerators.

Die- $input Variable ist auch für den Befehl verfügbar, der durch den-Parameter von angegeben wird, -Command Wenn Sie pwsh von der Befehlszeile aufgerufen wird.The $input variable is also available to the command specified by the -Command parameter of pwsh when invoked from the command line. Das folgende Beispiel wird in der Windows-Befehlsshell ausgeführt.The following example is run from the Windows Command shell.

echo Hello | pwsh -Command """$input World!"""

$IsCoreCLR$IsCoreCLR

Enthält, $True Wenn die aktuelle Sitzung auf der .net Core-Laufzeit (CoreCLR) ausgeführt wird.Contains $True if the current session is running on the .NET Core Runtime (CoreCLR). Andernfalls enthält $False .Otherwise contains $False.

$IsLinux$IsLinux

Enthält, $True Wenn die aktuelle Sitzung unter einem Linux-Betriebssystem ausgeführt wird.Contains $True if the current session is running on a Linux operating system. Andernfalls enthält $False .Otherwise contains $False.

$IsMacOS$IsMacOS

Enthält, $True Wenn die aktuelle Sitzung unter einem MacOS-Betriebssystem ausgeführt wird.Contains $True if the current session is running on a MacOS operating system. Andernfalls enthält $False .Otherwise contains $False.

$IsWindows$IsWindows

Enthält, $TRUE Wenn die aktuelle Sitzung unter einem Windows-Betriebssystem ausgeführt wird.Contains $TRUE if the current session is running on a Windows operating system. Andernfalls enthält $FALSE .Otherwise contains $FALSE.

$LastExitCode$LastExitCode

Enthält den Exitcode des letzten Windows-basierten Programms, das ausgeführt wurde.Contains the exit code of the last Windows-based program that was run.

$Matches$Matches

Die Matches -Variable funktioniert mit -match den -notmatch Operatoren und.The Matches variable works with the -match and -notmatch operators. Wenn Sie skalare Eingaben an den -match -notmatch -Operator oder den-Operator übermitteln und eine Übereinstimmung erkannt wird, wird ein boolescher Wert zurückgegeben, und die $Matches Automatische Variable wird mit einer Hash Tabelle mit allen übereinstimmenden Zeichen folgen Werten aufgefüllt.When you submit scalar input to the -match or -notmatch operator, and either one detects a match, they return a Boolean value and populate the $Matches automatic variable with a hash table of any string values that were matched. Die $Matches Hash Tabelle kann auch mit Erfassungen aufgefüllt werden, wenn Sie reguläre Ausdrücke mit dem- -match Operator verwenden.The $Matches hash table can also be populated with captures when you use regular expressions with the -match operator.

Weitere Informationen zum- -match Operator finden Sie unter about_Comparison_Operators.For more information about the -match operator, see about_Comparison_Operators. Weitere Informationen zu regulären Ausdrücken finden Sie unter about_Regular_Expressions.For more information on regular expressions, see about_Regular_Expressions.

Die- $Matches Variable kann auch in einer- switch Anweisung mit dem-Parameter verwendet werden -Regex .The $Matches variable also works in a switch statement with the -Regex parameter. Es wird auf die gleiche Weise wie die -match -und- -notmatch Operatoren aufgefüllt.It's populated the same way as the -match and -notmatch operators. Weitere Informationen zur- switch Anweisung finden Sie unter about_Switch.For more information about the switch statement, see about_Switch.

$MyInvocation$MyInvocation

Enthält Informationen über den aktuellen Befehl, z. b. den Namen, die Parameter, die Parameterwerte und Informationen darüber, wie der Befehl gestartet, aufgerufen oder aufgerufen wurde, z. b. der Name des Skripts, das den aktuellen Befehl aufgerufen hat.Contains information about the current command, such as the name, parameters, parameter values, and information about how the command was started, called, or invoked, such as the name of the script that called the current command.

$MyInvocation wird nur für Skripts, Funktionen und Skriptblöcke aufgefüllt.$MyInvocation is populated only for scripts, function, and script blocks. Sie können die Informationen im System. Management. Automation. invocationinfo -Objekt verwenden, das $MyInvocation im aktuellen Skript zurückgibt, wie z. b. den Pfad und den Dateinamen des Skripts ( $MyInvocation.MyCommand.Path ) oder den Namen einer Funktion ( $MyInvocation.MyCommand.Name ), um den aktuellen Befehl zu identifizieren.You can use the information in the System.Management.Automation.InvocationInfo object that $MyInvocation returns in the current script, such as the path and file name of the script ($MyInvocation.MyCommand.Path) or the name of a function ($MyInvocation.MyCommand.Name) to identify the current command. Dies ist besonders nützlich, um den Namen des aktuellen Skripts zu suchen.This is particularly useful for finding the name of the current script.

Ab PowerShell 3,0 MyInvocation verfügt über die folgenden neuen Eigenschaften.Beginning in PowerShell 3.0, MyInvocation has the following new properties.

EigenschaftProperty BESCHREIBUNGDescription
PSScriptRootPSScriptRoot Enthält den vollständigen Pfad des aufgerufenen Skripts.Contains the full path to the script that invoked
der aktuelle Befehl.the current command. Der Wert dieser Eigenschaft istThe value of this property is
wird nur aufgefüllt, wenn der Aufrufer ein Skript ist.populated only when the caller is a script.
PscommandpathPSCommandPath Enthält den vollständigen Pfad und den Dateinamen des Skripts.Contains the full path and file name of the script
, der den aktuellen Befehl aufgerufen hat.that invoked the current command. Der Wert diesesThe value of this
die Eigenschaft wird nur aufgefüllt, wenn der Aufrufer einproperty is populated only when the caller is a
„Hello World!“.script.

Im Gegensatz zu den $PSScriptRoot $PSCommandPath automatischen Variablen und enthalten die Eigenschaften psscriptroot und pscommandpath der $MyInvocation automatischen Variablen Informationen über den aufrufenden oder das aufrufende Skript, nicht über das aktuelle Skript.Unlike the $PSScriptRoot and $PSCommandPath automatic variables, the PSScriptRoot and PSCommandPath properties of the $MyInvocation automatic variable contain information about the invoker or calling script, not the current script.

$NestedPromptLevel$NestedPromptLevel

Enthält die aktuelle Eingabe Aufforderungs Ebene.Contains the current prompt level. Der Wert 0 gibt die ursprüngliche Eingabe Aufforderungs Ebene an.A value of 0 indicates the original prompt level. Der Wert wird erhöht, wenn Sie eine eingefügte Ebene eingeben und dekrementiert werden, wenn Sie Sie beenden.The value is incremented when you enter a nested level and decremented when you exit it.

PowerShell zeigt z. b. eine eingefügte Eingabeaufforderung an, wenn Sie die- $Host.EnterNestedPrompt Methode verwenden.For example, PowerShell presents a nested command prompt when you use the $Host.EnterNestedPrompt method. PowerShell zeigt auch eine eingefügte Eingabeaufforderung an, wenn Sie einen Breakpoint im PowerShell-Debugger erreichen.PowerShell also presents a nested command prompt when you reach a breakpoint in the PowerShell debugger.

Wenn Sie eine eingefügte Eingabeaufforderung eingeben, hält PowerShell den aktuellen Befehl an, speichert den Ausführungs Kontext und erhöht den Wert der $NestedPromptLevel Variablen.When you enter a nested prompt, PowerShell pauses the current command, saves the execution context, and increments the value of the $NestedPromptLevel variable. Um zusätzliche Eingabe Aufforderungen für ein Eingabefenster (bis zu 128 Ebenen) zu erstellen oder zur ursprünglichen Eingabeaufforderung zurückzukehren, führen Sie den Befehl aus, oder geben Sie ein exit .To create additional nested command prompts (up to 128 levels) or to return to the original command prompt, complete the command, or type exit.

Die- $NestedPromptLevel Variable hilft Ihnen beim Nachverfolgen der Eingabe Aufforderungs Ebene.The $NestedPromptLevel variable helps you track the prompt level. Sie können eine Alternative PowerShell-Eingabeaufforderung erstellen, die diesen Wert enthält, sodass er immer sichtbar ist.You can create an alternative PowerShell command prompt that includes this value so that it's always visible.

$null$null

$null eine automatische Variable, die einen null -Wert oder einen leeren Wert enthält.$null is an automatic variable that contains a null or empty value. Mit dieser Variablen können Sie einen fehlenden oder nicht definierten Wert in Befehlen und Skripts darstellen.You can use this variable to represent an absent or undefined value in commands and scripts.

PowerShell behandelt $null als ein Objekt mit einem Wert, d. h. als expliziter Platzhalter, damit Sie $null einen leeren Wert in einer Reihe von Werten darstellen können.PowerShell treats $null as an object with a value, that is, as an explicit placeholder, so you can use $null to represent an empty value in a series of values.

Wenn z. b $null . in einer Auflistung enthalten ist, wird Sie als eines der-Objekte gezählt.For example, when $null is included in a collection, it's counted as one of the objects.

$a = "one", $null, "three"
$a.count
3

Wenn Sie die $null Variable an das ForEach-Object Cmdlet weiterreichen, generiert Sie einen Wert für $null , genau wie für die anderen Objekte.If you pipe the $null variable to the ForEach-Object cmdlet, it generates a value for $null, just as it does for the other objects

"one", $null, "three" | ForEach-Object { "Hello " + $_}
Hello one
Hello
Hello three

Daher können Sie $null nicht verwenden, um keinen Parameterwert zu verwenden.As a result, you can't use $null to mean no parameter value. Der Parameterwert $null überschreibt den Standardparameter Wert.A parameter value of $null overrides the default parameter value.

Da die Variable von PowerShell jedoch $null als Platzhalter behandelt wird, können Sie Sie in Skripts wie dem folgenden verwenden, was nicht funktioniert, wenn Sie $null ignoriert wurden.However, because PowerShell treats the $null variable as a placeholder, you can use it in scripts like the following one, which wouldn't work if $null were ignored.

$calendar = @($null, $null, "Meeting", $null, $null, "Team Lunch", $null)
$days = "Sunday","Monday","Tuesday","Wednesday","Thursday",
        "Friday","Saturday"
$currentDay = 0
foreach($day in $calendar)
{
    if($day -ne $null)
    {
        "Appointment on $($days[$currentDay]): $day"
    }

    $currentDay++
}
Appointment on Tuesday: Meeting
Appointment on Friday: Team lunch

$PID$PID

Enthält die Prozess-ID (PID) des Prozesses, in dem die aktuelle PowerShell-Sitzung gehostet wird.Contains the process identifier (PID) of the process that is hosting the current PowerShell session.

$PROFILE$PROFILE

Enthält den vollständigen Pfad des PowerShell-Profils für den aktuellen Benutzer und die aktuelle Host Anwendung.Contains the full path of the PowerShell profile for the current user and the current host application. Mit dieser Variablen können Sie das Profil in Befehlen darstellen.You can use this variable to represent the profile in commands. Beispielsweise können Sie ihn in einem Befehl verwenden, um zu bestimmen, ob ein Profil erstellt wurde:For example, you can use it in a command to determine whether a profile has been created:

Test-Path $PROFILE

Oder Sie können Sie in einem Befehl verwenden, um ein Profil zu erstellen:Or, you can use it in a command to create a profile:

New-Item -ItemType file -Path $PROFILE -Force

Sie können Sie in einem Befehl verwenden, um das Profil in notepad.exe zu öffnen:You can use it in a command to open the profile in notepad.exe:

notepad.exe $PROFILE

$PSBoundParameters$PSBoundParameters

Enthält ein Wörterbuch mit den Parametern, die an ein Skript oder eine Funktion und ihre aktuellen Werte übermittelt werden.Contains a dictionary of the parameters that are passed to a script or function and their current values. Diese Variable hat nur einen Wert in einem Bereich, in dem Parameter deklariert werden, z. b. ein Skript oder eine Funktion.This variable has a value only in a scope where parameters are declared, such as a script or function. Sie können Sie verwenden, um die aktuellen Parameterwerte anzuzeigen oder zu ändern oder um Parameterwerte an ein anderes Skript oder eine andere Funktion zu übergeben.You can use it to display or change the current values of parameters or to pass parameter values to another script or function.

In diesem Beispiel übergibt die test2 -Funktion $PSBoundParameters an die test1 -Funktion.In this example, the Test2 function passes the $PSBoundParameters to the Test1 function. Die $PSBoundParameters werden im Format von Key und value angezeigt.The $PSBoundParameters are displayed in the format of Key and Value.

function Test1 {
   param($a, $b)

   # Display the parameters in dictionary format.
   $PSBoundParameters
}

function Test2 {
   param($a, $b)

   # Run the Test1 function with $a and $b.
   Test1 @PSBoundParameters
}
Test2 -a Power -b Shell
Key   Value
---   -----
a     Power
b     Shell

$PSCmdlet$PSCmdlet

Enthält ein-Objekt, das das Cmdlet oder die erweiterte Funktion darstellt, die gerade ausgeführt wird.Contains an object that represents the cmdlet or advanced function that's being run.

Sie können die Eigenschaften und Methoden des-Objekts im Cmdlet oder Funktionscode verwenden, um auf die Nutzungsbedingungen zu reagieren.You can use the properties and methods of the object in your cmdlet or function code to respond to the conditions of use. Beispielsweise enthält die parametersetname -Eigenschaft den Namen des verwendeten Parameter Satzes, und die Methode " schuldprocess " fügt die Parameter " WhatIf " und " Confirm " dem Cmdlet dynamisch hinzu.For example, the ParameterSetName property contains the name of the parameter set that's being used, and the ShouldProcess method adds the WhatIf and Confirm parameters to the cmdlet dynamically.

Weitere Informationen über die $PSCmdlet Automatische Variable finden Sie unter about_Functions_CmdletBindingAttribute und about_Functions_Advanced.For more information about the $PSCmdlet automatic variable, see about_Functions_CmdletBindingAttribute and about_Functions_Advanced.

$PSCommandPath$PSCommandPath

Enthält den vollständigen Pfad und den Dateinamen des Skripts, das gerade ausgeführt wird.Contains the full path and file name of the script that's being run. Diese Variable ist in allen Skripts gültig.This variable is valid in all scripts.

$PSCulture$PSCulture

Ab PowerShell 7 gibt $PSCulture die Kultur des aktuellen PowerShell-Runspace (Session) wieder.Beginning in PowerShell 7, $PSCulture reflects the culture of the current PowerShell runspace (session). Wenn die Kultur in einem PowerShell-Runspace geändert wird, $PSCulture wird der Wert für diesen Runspace aktualisiert.If the culture is changed in a PowerShell runspace, the $PSCulture value for that runspace is updated.

Die Kultur bestimmt das Anzeige Format von Elementen, z. b. Zahlen, Währungen und Datumsangaben, und wird in einem System. Globalization. CultureInfo -Objekt gespeichert.The culture determines the display format of items such as numbers, currency, and dates, and is stored in a System.Globalization.CultureInfo object. Verwenden Get-Culture Sie, um die Kultur des Computers anzuzeigen.Use Get-Culture to display the computer's culture. $PSCulture enthält den Wert der Name -Eigenschaft.$PSCulture contains the Name property's value.

$PSDebugContext$PSDebugContext

Beim Debuggen enthält diese Variable Informationen zur Debugumgebung.While debugging, this variable contains information about the debugging environment. Andernfalls enthält Sie einen null -Wert.Otherwise, it contains a null value. Daher können Sie damit angeben, ob der Debugger über Steuerelemente verfügt.As a result, you can use it to indicate whether the debugger has control. Wenn Sie aufgefüllt ist, enthält Sie ein psdebugcontext -Objekt mit Breakpoints und invocationinfo -Eigenschaften.When populated, it contains a PsDebugContext object that has Breakpoints and InvocationInfo properties. Die invocationinfo -Eigenschaft verfügt über mehrere nützliche Eigenschaften, einschließlich der Location -Eigenschaft.The InvocationInfo property has several useful properties, including the Location property. Die Location -Eigenschaft gibt den Pfad des Skripts an, das gedebuggt wird.The Location property indicates the path of the script that is being debugged.

$PSHOME$PSHOME

Enthält den vollständigen Pfad des Installationsverzeichnisses für PowerShell (in der Regel $env:windir\System32\PowerShell\v1.0 in Windows-Systemen).Contains the full path of the installation directory for PowerShell, typically, $env:windir\System32\PowerShell\v1.0 in Windows systems. Sie können diese Variable in den Pfaden von PowerShell-Dateien verwenden.You can use this variable in the paths of PowerShell files. Mit dem folgenden Befehl werden z. b. die konzeptionellen Hilfe Themen nach der Word- Variablen durchsucht:For example, the following command searches the conceptual Help topics for the word variable:

Select-String -Pattern Variable -Path $pshome\*.txt

$PSItem$PSItem

Wie in $_.Same as $_. Enthält das aktuelle-Objekt im Pipeline Objekt.Contains the current object in the pipeline object. Sie können diese Variable in Befehlen verwenden, die eine Aktion für jedes Objekt oder für ausgewählte Objekte in einer Pipeline ausführen.You can use this variable in commands that perform an action on every object or on selected objects in a pipeline.

$PSScriptRoot$PSScriptRoot

Enthält das Verzeichnis, in dem ein Skript ausgeführt wird.Contains the directory from which a script is being run.

In PowerShell 2,0 ist diese Variable nur in Skript Modulen () gültig .psm1 .In PowerShell 2.0, this variable is valid only in script modules (.psm1). Ab PowerShell 3,0 ist Sie in allen Skripts gültig.Beginning in PowerShell 3.0, it's valid in all scripts.

$PSSenderInfo$PSSenderInfo

Enthält Informationen über den Benutzer, der die PSSession gestartet hat, einschließlich der Benutzeridentität und der Zeitzone des Ursprungs Computers.Contains information about the user who started the PSSession, including the user identity and the time zone of the originating computer. Diese Variable ist nur in pssessions verfügbar.This variable is available only in PSSessions.

Die $PSSenderInfo -Variable enthält eine vom benutzerkonfigurierbare Eigenschaft applicationarguments, die standardmäßig nur die $PSVersionTable aus der ursprünglichen Sitzung enthält.The $PSSenderInfo variable includes a user-configurable property, ApplicationArguments, that by default, contains only the $PSVersionTable from the originating session. Um der applicationarguments -Eigenschaft Daten hinzuzufügen, verwenden Sie den applicationarguments -Parameter des New-PSSessionOption Cmdlets.To add data to the ApplicationArguments property, use the ApplicationArguments parameter of the New-PSSessionOption cmdlet.

$PSUICulture$PSUICulture

Enthält den Namen der Kultur der Benutzeroberfläche (UI), die derzeit im Betriebssystem verwendet wird.Contains the name of the user interface (UI) culture that's currently in use in the operating system. Die Benutzeroberflächenkultur bestimmt, welche Textzeichenfolgen für die Benutzeroberflächenelemente, z. B. Menüs und Meldungen, verwendet werden.The UI culture determines which text strings are used for user interface elements, such as menus and messages. Dies ist der Wert der System.Globalization.CultureInfo.CurrentUICulture.Name -Eigenschaft des Systems.This is the value of the System.Globalization.CultureInfo.CurrentUICulture.Name property of the system. Verwenden Sie das-Cmdlet, um das System. Globalization. CultureInfo -Objekt für das System zu erhalten Get-UICulture .To get the System.Globalization.CultureInfo object for the system, use the Get-UICulture cmdlet.

$PSVersionTable$PSVersionTable

Enthält eine schreibgeschützte Hash Tabelle, in der Details zur PowerShell-Version angezeigt werden, die in der aktuellen Sitzung ausgeführt wird.Contains a read-only hash table that displays details about the version of PowerShell that is running in the current session. Die Tabelle enthält die folgenden Elemente:The table includes the following items:

EigenschaftProperty BESCHREIBUNGDescription
PSVersionPSVersion Die PowerShell-VersionsnummerThe PowerShell version number
PSEditionPSEdition Diese Eigenschaft hat den Wert "Desktop" fürThis property has the value of 'Desktop' for
PowerShell 4 und niedriger als auch PowerShellPowerShell 4 and below as well as PowerShell
5,1 bei voll funktionsfähigen Windows-Editionen.5.1 on full-featured Windows editions.
Diese Eigenschaft hat den Wert "Core" fürThis property has the value of 'Core' for
PowerShell 6 und höher sowie PowerShellPowerShell 6 and above as well as PowerShell
PowerShell 5,1 bei Editionen mit geringerer SpeicherbedarfPowerShell 5.1 on reduced-footprint editions
wie Windows Nano Server oder Windows IOT.like Windows Nano Server or Windows IoT.
GitcomentschärdGitCommitId Die Commit-ID der Quelldateien in GitHubThe commit Id of the source files, in GitHub,
BetriebssystemOS Beschreibung des Betriebssystems, dasDescription of the operating system that
PowerShell wird unter ausgeführt.PowerShell is running on.
PlattformPlatform Plattform, auf der das Betriebssystem ausgeführt wirdPlatform that the operating system is running
Abonnements.on. Der Wert unter Linux und macOS ist UNIX.The value on Linux and macOS is Unix.
Prüfen Sie $IsMacOs und $IsLinux.See $IsMacOs and $IsLinux.
PscompatibleversionsPSCompatibleVersions Versionen von PowerShell, die kompatibel sindVersions of PowerShell that are compatible
mit der aktuellen Versionwith the current version
PsremotingprotocolversionPSRemotingProtocolVersion Die Version von PowerShell RemoteThe version of the PowerShell remote
Verwaltungs Protokoll.management protocol.
SerializationVersionSerializationVersion Die Version der Serialisierungsmethode.The version of the serialization method
WsmanstackversionWSManStackVersion Die Versionsnummer des WS-Management StapelsThe version number of the WS-Management stack

$PWD$PWD

Enthält ein Pfad Objekt, das den vollständigen Pfad des aktuellen Verzeichnis Speicher Orts für den aktuellen PowerShell-Runspace darstellt.Contains a path object that represents the full path of the current directory location for the current PowerShell runspace.

Hinweis

PowerShell unterstützt mehrere Runspaces pro Prozess.PowerShell supports multiple runspaces per process. Jeder Runspace verfügt über ein eigenes Aktuelles Verzeichnis.Each runspace has its own current directory. Dies entspricht nicht dem aktuellen Verzeichnis des Prozesses: [System.Environment]::CurrentDirectory .This is not the same as the current directory of the process: [System.Environment]::CurrentDirectory.

$Sender$Sender

Enthält das-Objekt, das dieses Ereignis generiert hat.Contains the object that generated this event. Diese Variable wird nur innerhalb des Aktions Blocks eines Ereignis Registrierungs Befehls aufgefüllt.This variable is populated only within the Action block of an event registration command. Der Wert dieser Variablen befindet sich auch in der Absender-Eigenschaft des psiebargs -Objekts, das Get-Event zurückgibt.The value of this variable can also be found in the Sender property of the PSEventArgs object that Get-Event returns.

$ShellId$ShellId

Enthält den Bezeichner der aktuellen Shell.Contains the identifier of the current shell.

$StackTrace$StackTrace

Enthält eine Stapel Überwachung für den letzten Fehler.Contains a stack trace for the most recent error.

$switch$switch

Enthält den Enumerator nicht die resultierenden Werte einer- Switch Anweisung.Contains the enumerator not the resulting values of a Switch statement. Die $switch Variable ist nur vorhanden, während die Switch Anweisung ausgeführt wird. Sie wird gelöscht, wenn die switch Ausführung der Anweisung abgeschlossen ist.The $switch variable exists only while the Switch statement is running; it's deleted when the switch statement completes execution. Weitere Informationen finden Sie unter about_Switch.For more information, see about_Switch.

Enumeratoren enthalten Eigenschaften und Methoden, mit denen Sie Schleifen Werte abrufen und die aktuelle Schleifen Iterationen ändern können.Enumerators contain properties and methods you can use to retrieve loop values and change the current loop iteration. Weitere Informationen finden Sie unter Verwenden von Enumeratoren.For more information, see Using Enumerators.

$this$this

In einem Skriptblock, der eine Skript Eigenschaft oder Skript Methode definiert, $this verweist die Variable auf das Objekt, das erweitert wird.In a script block that defines a script property or script method, the $this variable refers to the object that is being extended.

In einer benutzerdefinierten Klasse $this verweist die Variable auf das Klassenobjekt, das den Zugriff auf die in der-Klasse definierten Eigenschaften und Methoden zulässt.In a custom class, the $this variable refers to the class object itself allowing access to properties and methods defined in the class.

$True$true

Enthält true.Contains True. Sie können diese Variable verwenden, um true in Befehlen und Skripts darzustellen.You can use this variable to represent True in commands and scripts.

Verwenden von EnumeratorenUsing Enumerators

Die $input $foreach Variablen, und $switch sind alle Enumeratoren, die zum Durchlaufen der Werte verwendet werden, die durch ihren enthaltenden Codeblock verarbeitet werden.The $input, $foreach, and $switch variables are all enumerators used to iterate through the values processed by their containing code block.

Ein Enumerator enthält Eigenschaften und Methoden, die Sie zum fortsetzen oder Zurücksetzen der Iterationen oder zum Abrufen von Iterations Werten verwenden können.An enumerator contains properties and methods you can use to advance or reset iteration, or retrieve iteration values. Die direkte Bearbeitung von Enumeratoren gilt nicht als bewährte Vorgehensweise.Directly manipulating enumerators isn't considered best practice.

  • In Schleifen sollten die Fluss Steuerungs Schlüsselwörter unter brechen und fortfahren bevorzugt werden.Within loops, flow control keywords break and continue should be preferred.

  • In Funktionen, die Pipeline Eingaben akzeptieren, empfiehlt es sich, Parameter mit den Attributen valuefrompipeline oder valuefrompipelinebypropertyname zu verwenden.Within functions that accept pipeline input, it's best practice to use Parameters with the ValueFromPipeline or ValueFromPipelineByPropertyName attributes.

    Weitere Informationen finden Sie unter about_Functions_Advanced_Parameters.For more information, see about_Functions_Advanced_Parameters.

MoveNextMoveNext

Die Methode " -Methode" verschiebt den Enumerator auf das nächste Element der Auflistung.The MoveNext method advances the enumerator to the next element of the collection. " Muvenext " gibt " true " zurück, wenn der Enumerator erfolgreich erweitert wurde, " false ", wenn der Enumerator das Ende der Auflistung überschritten hat.MoveNext returns True if the enumerator was successfully advanced, False if the enumerator has passed the end of the collection.

Hinweis

Der boolesche Wert, der My MoveNext zurückgibt, wird an den Ausgabestream gesendet.The Boolean value returned my MoveNext is sent to the output stream. Sie können die Ausgabe unterdrücken, indem Sie Sie in Typecasting umwandeln [void] oder an out-nullweiterleiten.You can suppress the output by typecasting it to [void] or piping it to Out-Null.

$input.MoveNext() | Out-Null
[void]$input.MoveNext()

ResetReset

Die Reset -Methode legt den Enumerator auf seine anfängliche Position vor dem ersten Element in der Auflistung fest.The Reset method sets the enumerator to its initial position, which is before the first element in the collection.

AktuellCurrent

Die Current -Eigenschaft ruft das-Element in der-Auflistung oder-Pipeline an der aktuellen Position des Enumerators ab.The Current property gets the element in the collection, or pipeline, at the current position of the enumerator.

Die aktuelle -Eigenschaft gibt weiterhin dieselbe Eigenschaft zurück, bis " " "" ".The Current property continues to return the same property until MoveNext is called.

BeispieleExamples

Beispiel 1: Verwenden der $Input VariableExample 1: Using the $input variable

Im folgenden Beispiel löscht der Zugriff auf die- $input Variable die-Variable, bis der Prozess Block das nächste Mal ausgeführt wird.In the following example, accessing the $input variable clears the variable until the next time the process block executes. Bei Verwendung der Reset -Methode wird die $input Variable auf den aktuellen Pipeline Wert zurückgesetzt.Using the Reset method resets the $input variable to the current pipeline value.

function Test
{
    begin
    {
        $i = 0
    }

    process
    {
        "Iteration: $i"
        $i++
        "`tInput: $input"
        "`tAccess Again: $input"
        $input.Reset()
        "`tAfter Reset: $input"
    }
}

"one","two" | Test
Iteration: 0
    Input: one
    Access Again:
    After Reset: one
Iteration: 1
    Input: two
    Access Again:
    After Reset: two

Der Prozess Block setzt die Variable automatisch fort, $input auch wenn Sie nicht darauf zugreifen.The process block automatically advances the $input variable even if you don't access it.

$skip = $true
function Skip
{
    begin
    {
        $i = 0
    }

    process
    {
        "Iteration: $i"
        $i++
        if ($skip)
        {
            "`tSkipping"
            $skip = $false
        }
        else
        {
            "`tInput: $input"
        }
    }
}

"one","two" | Skip
Iteration: 0
    Skipping
Iteration: 1
    Input: two

Beispiel 2: Verwenden von $Input außerhalb des Prozess BlocksExample 2: Using $input outside the process block

Außerhalb des Prozess Blocks stellt die $input Variable alle Werte dar, die an die Funktion weitergeleitet werden.Outside of the process block the $input variable represents all the values piped into the function.

  • Durch den Zugriff auf die $input Variable werden alle Werte gelöscht.Accessing the $input variable clears all values.
  • Die Reset -Methode setzt die gesamte Auflistung zurück.The Reset method resets the entire collection.
  • Die aktuelle Eigenschaft wird nie aufgefüllt.The Current property is never populated.
  • Die Methode " ivenext " gibt false zurück, da die Auflistung nicht erweitert werden kann.The MoveNext method returns false because the collection can't be advanced.
    • Durch Aufrufen von "" wird die $input Variable gelöscht.Calling MoveNext clears out the $input variable.
Function All
{
    "All Values: $input"
    "Access Again: $input"
    $input.Reset()
    "After Reset: $input"
    $input.MoveNext() | Out-Null
    "After MoveNext: $input"
}

"one","two","three" | All
All Values: one two three
Access Again:
After Reset: one two three
After MoveNext:

Beispiel 3: Verwenden der $Input. Current-EigenschaftExample 3: Using the $input.Current property

Mithilfe der aktuellen Eigenschaft kann auf den aktuellen Pipeline Wert mehrmals zugegriffen werden, ohne dass die Reset -Methode verwendet wird.By using the Current property, the current pipeline value can be accessed multiple times without using the Reset method. Der Prozess Block ruft nicht automatisch die Methode " Methode" auf.The process block doesn't automatically call the MoveNext method.

Die aktuelle Eigenschaft wird nie aufgefüllt, es sei denn, Sie nennen nicht explizit "".The Current property will never be populated unless you explicitly call MoveNext. Der Zugriff auf die aktuelle Eigenschaft kann mehrmals innerhalb des Prozess Blocks erfolgen, ohne den Wert zu löschen.The Current property can be accessed multiple times inside the process block without clearing its value.

function Current
{
    begin
    {
        $i = 0
    }

    process
    {
        "Iteration: $i"
        $i++
        "`tBefore MoveNext: $($input.Current)"
        $input.MoveNext() | Out-Null
        "`tAfter MoveNext: $($input.Current)"
        "`tAccess Again: $($input.Current)"
    }
}

"one","two" | Current
Iteration: 0
    Before MoveNext:
    After MoveNext: one
    Access Again: one
Iteration: 1
    Before MoveNext:
    After MoveNext: two
    Access Again: two

Beispiel 4: Verwenden der $foreach VariableExample 4: Using the $foreach variable

Anders als die- $input Variable $foreach stellt die-Variable immer alle Elemente in der Auflistung dar, wenn direkt darauf zugegriffen wird.Unlike the $input variable, the $foreach variable always represents all items in the collection when accessed directly. Verwenden Sie die aktuelle -Eigenschaft, um auf das aktuelle Auflistungs Element zuzugreifen , und die Reset -Methode und die-Methode, um den Wert zu ändern.Use the Current property to access the current collection element, and the Reset and MoveNext methods to change its value.

Hinweis

Jede Iterations foreach Schleife ruft automatisch die Methode " ivenext " auf.Each iteration of the foreach loop will automatically call the MoveNext method.

Die folgende-Schleife wird nur zweimal ausgeführt.The following loop only executes twice. In der zweiten Iterationen wird die Auflistung vor Abschluss der Iterationen auf das dritte Element verschoben.In the second iteration, the collection is moved to the third element before the iteration is complete. Nach der zweiten Iterations Zeit sind nun keine weiteren Werte zum Durchlaufen vorhanden, und die Schleife wird beendet.After the second iteration, there are now no more values to iterate, and the loop terminates.

Die Eigenschaft " ivenext " wirkt sich nicht auf die Variable aus, die zum Durchlaufen der Auflistung ausgewählt wurde ( $Num ).The MoveNext property doesn't affect the variable chosen to iterate through the collection ($Num).

$i = 0
foreach ($num in ("one","two","three"))
{
    "Iteration: $i"
    $i++
    "`tNum: $num"
    "`tCurrent: $($foreach.Current)"

    if ($foreach.Current -eq "two")
    {
        "Before MoveNext (Current): $($foreach.Current)"
        $foreach.MoveNext() | Out-Null
        "After MoveNext (Current): $($foreach.Current)"
        "Num has not changed: $num"
    }
}
Iteration: 0
        Num: one
        Current: one
Iteration: 1
        Num: two
        Current: two
Before MoveNext (Current): two
After MoveNext (Current): three
Num has not changed: two

Bei Verwendung der Reset-Methode wird das aktuelle Element in der Auflistung zurück gesetzt .Using the Reset method resets the current element in the collection. Im folgenden Beispiel werden die ersten beiden Elemente zweimal durchlaufen, da die Reset -Methode aufgerufen wird.The following example loops through the first two elements twice because the Reset method is called. Nach den ersten beiden Schleifen schlägt die if Anweisung fehl, und die Schleife durchläuft alle drei Elemente in der Regel.After the first two loops, the if statement fails and the loop iterates through all three elements normally.

Wichtig

Dies kann zu einer Endlosschleife führen.This could result in an infinite loop.

$stopLoop = 0
foreach ($num in ("one","two", "three"))
{
    ("`t" * $stopLoop) + "Current: $($foreach.Current)"

    if ($num -eq "two" -and $stopLoop -lt 2)
    {
        $foreach.Reset() | Out-Null
        ("`t" * $stopLoop) + "Reset Loop: $stopLoop"
        $stopLoop++
    }
}
Current: one
Current: two
Reset Loop: 0
        Current: one
        Current: two
        Reset Loop: 1
                Current: one
                Current: two
                Current: three

Beispiel 5: Verwenden der $Switch VariableExample 5: Using the $switch variable

Die $switch Variable verfügt über die exakt gleichen Regeln wie die $foreach Variable.The $switch variable has the exact same rules as the $foreach variable. Im folgenden Beispiel werden alle enumeratorkonzepte veranschaulicht.The following example demonstrates all the enumerator concepts.

Hinweis

Beachten Sie, dass der notevaluated -Fall nie ausgeführt wird, auch wenn es keine- break Anweisung nach der-Methode von "-Methode" gibt.Note how the NotEvaluated case is never executed, even though there's no break statement after the MoveNext method.

$values = "Start", "MoveNext", "NotEvaluated", "Reset", "End"
$stopInfinite = $false
switch ($values)
{
    "MoveNext" {
        "`tMoveNext"
        $switch.MoveNext() | Out-Null
        "`tAfter MoveNext: $($switch.Current)"
    }
    # This case is never evaluated.
    "NotEvaluated" {
        "`tAfterMoveNext: $($switch.Current)"
    }

    "Reset" {
        if (!$stopInfinite)
        {
            "`tReset"
            $switch.Reset()
            $stopInfinite = $true
        }
    }

    default {
        "Default (Current): $($switch.Current)"
    }
}
Default (Current): Start
    MoveNext
    After MoveNext: NotEvaluated
    Reset
Default (Current): Start
    MoveNext
    After MoveNext: NotEvaluated
Default (Current): End

Siehe auchSee also

about_Functionsabout_Functions

about_Functions_Advancedabout_Functions_Advanced

about_Functions_Advanced_Methodsabout_Functions_Advanced_Methods

about_Functions_Advanced_Parametersabout_Functions_Advanced_Parameters

about_Functions_OutputTypeAttributeabout_Functions_OutputTypeAttribute

about_Functions_CmdletBindingAttributeabout_Functions_CmdletBindingAttribute

about_Hash_Tablesabout_Hash_Tables

about_Preference_Variablesabout_Preference_Variables

about_Splattingabout_Splatting

about_Variablesabout_Variables