Es geht auch anders. Sie können die $PSDefaultParameterValues
automatische Variable verwenden, die (seit Version 3) vorhanden ist, um Cmdlets und erweiterten Funktionen neue Standardargumente bereitzustellen (funktioniert nicht mit normalen Funktionen). Es funktioniert jedoch für Skripte, auch beim Debuggen in ISE. Sie müssen [CmdletBinding()]
oder deklarieren[Parameter()]
möchten wie Sie es für eine erweiterte Funktion tun würden.
Also für Ihr Beispiel,
[CmdletBinding()]
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Sie würden so etwas auf der ISE-Eingabeaufforderung ausführen:
$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")
Sie können den Parameterwert auch auf einen Skriptblock setzen, der zur Laufzeit automatisch ausgeführt wird:
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
Die Variable ist eine Hashtabelle und es gilt die gesamte Standardsyntax, außer dass der Schlüssel den Namen des Skripts (oder der erweiterten Funktion oder des Cmdlets) gefolgt von einem Doppelpunkt und dann den Parameternamen haben muss. Sie können Standardeinstellungen für mehrere Skripte oder Befehle und mehrere Parameter für jeden festlegen (jeder Parameter ist ein neuer Tabelleneintrag).
Auf diese Weise können Sie einfach drücken F5, um Ihr Skript wie gewohnt auszuführen. Die Parameter werden aus der Variablen übernommen, sodass Sie nichts eingeben müssen.
Andere Anwendungsfälle für $PSDefaultParameterValues
können Anpassungen sein, z. B. dass der Get-History nur die letzten 10 Einträge abruft, es sei denn, Sie geben den -Count
Parameter im Befehl an. Da Einträge nur für die aktuelle Sitzung bestehen bleiben, möchten Sie Ihrem Profil Anpassungen hinzufügen . Sie können mehr lesen, indem Sie Get-Help about_Parameters_Default_Values
an der Eingabeaufforderung eingeben oder dieselben Informationen in TechNet anzeigen .