So erhalten Sie Befehlszeilenargumente in Windows PowerShell

  1. Parameter im PowerShell-Skript definieren
  2. Benannte Parameter im PowerShell-Skript
  3. Standardwerte für Parameter im PowerShell-Skript zuweisen
  4. Schaltparameter im PowerShell-Skript
  5. Obligatorische Parameter im PowerShell-Skript
So erhalten Sie Befehlszeilenargumente in Windows PowerShell

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:
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn