PowerShell:
Lesen von Kommandozeilenargumenten
How to:
Mit PowerShell Argumente zu lesen, ist super einfach. Benutze die automatische Variable $args. Hier ein Beispiel:
# hello.ps1
param(
[string]$Name = "Welt"
)
Write-Host "Hallo, $Name!"
# Beispielaufruf mit Argument
# PS > .\hello.ps1 -Name "PowerShell Nutzer"
# Beispieloutput:
# Hallo, PowerShell Nutzer!Wenn du $args direkt nutzt:
# direct_args.ps1
# Ergebnis ausgeben
$args.ForEach({
Write-Host "Argument: $_"
})
# Beispielaufruf ohne parameterübergabe
# PS > .\direct_args.ps1 Das ist cool!
# Beispieloutput:
# Argument: Das
# Argument: ist
# Argument: cool!Deep Dive
PowerShell Argumente sind nicht neu. Schon in alten Batch-Dateien gabs %1, %2, usw. PowerShell macht’s moderner mit $args und param().
Alternativen gibt’s natürlich. $PSBoundParameters für Named-Parameter und Argument-Transformation durch Funktionen oder Skriptblöcke.
Bei der Implementierung von Kommandozeilenargumenten kommt es darauf an, wie komplex deine Parameterlogik ist. Einfache Skripte kommen oft mit $args aus, für mehr Komplexität sind param()-Blöcke und explizite Parameterdefinitionen besser.