So erhalten Sie Befehlszeilenargumente in Windows PowerShell
- Parameter im PowerShell-Skript definieren
- Benannte Parameter im PowerShell-Skript
- Standardwerte für Parameter im PowerShell-Skript zuweisen
- Schaltparameter im PowerShell-Skript
- Obligatorische Parameter im PowerShell-Skript

Wir behandeln Parameter mit der Windows PowerShell-Parameterfunktion namens param()
. Die Windows PowerShell-Parameterfunktion ist ein grundlegender Bestandteil jedes Skripts. Ein Parameter ist eine Möglichkeit, wie Entwickler den Skriptbenutzern ermöglichen, zur Laufzeit Eingaben bereitzustellen.
In diesem Artikel lernen Sie, wie Sie Skripte mit der Parameterfunktion erstellen, diese verwenden und einige Best Practices für den Aufbau von Parametern.
Parameter im PowerShell-Skript definieren
Administratoren können Parameter für Skripte und Funktionen mit der Parameterfunktion param()
erstellen. Eine Funktion enthält einen oder mehrere Parameter, die durch Variablen definiert sind.
Hello_World.ps1
:
param(
$message
)
Um jedoch sicherzustellen, dass der Parameter nur die Art von Eingaben akzeptiert, die Sie benötigen, besagt die beste Praxis, dass man einen Datentyp dem Parameter mit Hilfe eines Parameterblocks [Parameter()]
zuweisen und den Datentyp mit eckigen Klammern []
vor der Variablen umschließen sollte.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message
)
Im obigen Beispiel Hello_World.ps1
akzeptiert die Variable message
nur dann einen übergebenen Wert, wenn der gegebene Wert den Datentyp String
hat.
Benannte Parameter im PowerShell-Skript
Eine Möglichkeit, die Parameterfunktion in einem Skript zu verwenden, ist über den Parameternamen – diese Methode wird als benannte Parameter bezeichnet. Wenn ein Skript oder eine Funktion über benannte Parameter aufgerufen wird, verwenden wir den Variablennamen als vollständigen Namen des Parameters.
Wir haben ein Hello_World.ps1
erstellt und Variablen innerhalb der Parameterfunktion in diesem Beispiel definiert. Denken Sie daran, dass wir eine oder mehrere Variablen innerhalb der Parameterfunktion unterbringen können.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion
)
Write-Output $message
Write-Output "I am $emotion"
Wir können die benannten Parameter dann als Argument verwenden, wenn wir eine .ps1
-Datei ausführen.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'
Ausgabe:
Hello World!
I am happy
Standardwerte für Parameter im PowerShell-Skript zuweisen
Wir können einem Parameter einen Wert vorab zuweisen, indem wir dem Parameter innerhalb des Skripts einen Wert geben. Wenn wir das Skript dann ausführen, ohne Werte von der Ausführungszeile zu übergeben, wird der Standardwert der innerhalb des Skripts definierten Variablen übernommen.
param(
[Parameter()]
[String]$message = "Hello World",
[String]$emotion = "happy"
)
Write-Output $message
Write-Output "I am $emotion"
.\Hello_World.ps1
Ausgabe:
Hello World!
I am happy
Schaltparameter im PowerShell-Skript
Ein weiterer Parameter, den wir verwenden können, ist der Schaltparameter, der durch den Datentyp [switch]
definiert ist. Der Schaltparameter wird für binäre oder boolesche Werte verwendet, um true
oder false
anzuzeigen.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Wir können unser Skript mit dem Skriptparameter unter Verwendung der untenstehenden Syntax aufrufen.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false
Ausgabe:
User denied confirmation.
Obligatorische Parameter im PowerShell-Skript
Es ist üblich, einen oder mehrere Parameter zu haben, die verwendet werden müssen, wenn ein Skript ausgeführt wird. Wir können einen Parameter verpflichtend machen, indem wir ein Mandatory
-Attribut innerhalb des Parameterblocks [Parameter()]
hinzufügen.
Hello_World.ps1:
param(
[Parameter(Mandatory)]
[String]$message,
[String]$emotion,
[Switch]$display
)
if ($display) {
Write-Output $message
Write-Output "I am $emotion"
}
else {
Write-Output "User denied confirmation."
}
Beim Ausführen von Hello_World.ps1
lässt Windows PowerShell das Skript nicht ausführen und fordert Sie zur Eingabe eines Wertes auf.
.\Hello_World.ps1
Ausgabe:
cmdlet hello_world.ps1 at command pipeline position 1
Supply values for the following parameters:
message:
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn