Abrufen von Befehlszeilenargumenten in Windows PowerShell
- Definieren Sie Parameter im PowerShell-Skript
- Benannte Parameter in PowerShell-Skript
- Zuweisen von Standardwerten zu Parametern in PowerShell-Skripten
- Parameter in PowerShell-Skript umschalten
- Obligatorische Parameter in PowerShell-Skript
Wir behandeln Argumente mit der Windows PowerShell-Parameterfunktion namens param()
. Die Windows PowerShell-Parameterfunktion ist eine grundlegende Komponente jedes Skripts. Ein Parameter gibt an, wie Entwickler es Skriptbenutzern ermöglichen, zur Laufzeit Eingaben zu machen.
In diesem Artikel erfahren Sie, wie Sie Skripts mit der Parameterfunktion erstellen, sie verwenden und einige Best Practices zum Erstellen von Parametern kennenlernen.
Definieren Sie Parameter im PowerShell-Skript
Administratoren können mit der Parameterfunktion param()
Parameter für Skripte und Funktionen erstellen. Eine Funktion enthält einen oder mehrere durch Variablen definierte Parameter.
Hallo_Welt.ps1
:
param(
$message
)
Um jedoch sicherzustellen, dass der Parameter nur die Art der Eingabe akzeptiert, die Sie benötigen, schreiben Best Practices vor, dem Parameter einen Datentyp mit der Verwendung eines Parameterblocks [Parameter()]
zuzuweisen und den Datentyp in eckige Klammern einzuschließen []
vor der Variablen.
Hallo_Welt.ps1
:
param(
[Parameter()]
[String]$message
)
Im obigen Beispiel Hello_World.ps1
akzeptiert die Variable message
nur dann einen übergebenen Wert, wenn der angegebene Wert vom Datentyp String
ist.
Benannte Parameter in PowerShell-Skript
Eine Möglichkeit, die Parameterfunktion in einem Skript zu verwenden, ist über den Parameternamen – diese Methode wird benannte Parameter genannt. Beim Aufruf eines Skripts oder einer Funktion über benannte Parameter verwenden wir den Variablennamen als vollständigen Namen des Parameters.
In diesem Beispiel haben wir eine Hello_World.ps1
erstellt und Variablen innerhalb der Parameterfunktion definiert. Denken Sie daran, dass wir eine oder mehrere Variablen in die Parameterfunktion einfügen können.
Hello_World.ps1
:
param(
[Parameter()]
[String]$message,
[String]$emotion
)
Write-Output $message
Write-Output "I am $emotion"
Wir können dann die genannten Parameter als Argument verwenden, wenn wir eine .ps1
-Datei ausführen.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy'
Ausgabe:
Hello World!
I am happy
Zuweisen von Standardwerten zu Parametern in PowerShell-Skripten
Wir können einem Parameter vorab einen Wert zuweisen, indem wir dem Parameter innerhalb des Skripts einen Wert zuweisen. Wenn Sie dann das Skript ausführen, ohne Werte aus der Ausführungszeile zu übergeben, wird der Standardwert der im Skript 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
Parameter in PowerShell-Skript umschalten
Ein weiterer Parameter, den wir verwenden können, ist der switch-Parameter, der durch den Datentyp [switch]
definiert ist. Der Switch-Parameter 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 folgenden Syntax aufrufen.
.\Hello_World.ps1 -message 'Hello World!' -emotion 'happy' -display:$false
Ausgabe:
User denied confirmation.
Obligatorische Parameter in 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 obligatorisch machen, indem wir ein Mandatory
-Attribut innerhalb des Parameterblocks [Parameter()]
hinzufügen.
Hallo_Welt.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 die Ausführung des Skripts nicht zu und fordert Sie zur Eingabe eines Werts 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