Es gibt eine andere Art und Weise. Sie können die automatische Variable $PSDefaultParameterValues
verwenden, die (seit v3) neue Standardargumente für Cmdlets und erweiterte-Funktionen bereitstellt (funktioniert nicht mit normalen Funktionen). Es funktioniert jedoch auch für Skripts, selbst wenn Sie in ISE debuggen.
Also für Ihr Beispiel
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Sie wäre so etwas wie dies auf der ISE Prompt ausführen:
$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")
Sie auch den Parameter-Wert auf einen Skriptblock einstellen könnte, die Auto-Execute wird zur Laufzeit:
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
die Variable ist eine Hash-Tabelle und alle Standard-Syntax Appl ies, außer dem Schlüssel muss den Namen des Skripts (oder der erweiterten Funktion oder des Cmdlet) haben, gefolgt von einem Doppelpunkt und dem Parameternamen. Sie können Standardwerte für mehrere Skripts oder Befehle und mehrere Parameter für jedes festlegen (jeder Parameter ist ein neuer Tabelleneintrag).
Auf diese Weise können Sie einfach F5 drücken, um Ihr Skript normal auszuführen. Die Parameter werden aus der Variablen übernommen, so dass Sie nichts eingeben müssen.
Andere Anwendungsfälle für $PSDefaultParameterValues
könnten Anpassungen sein, wie haben die Get-History nur die letzten 10 Einträge, es sei denn, Sie geben die -Count
Parameter im Befehl. Da Einträge nur für die aktuelle Sitzung bestehen bleiben, sollten Sie Anpassungen an Ihre profile hinzufügen.Sie können mehr lesen, indem Sie an der Eingabeaufforderung Get-Help about_Parameters_Default_Values
eingeben oder die gleichen Informationen auf TechNet anzeigen.
Dieser Ansatz nicht für mich arbeiten, da mein Filepath darin hatte Räume, war die Lösung die „Ampersand-Funktion“ auf folgende Weise zu verwenden: PS C: \ Windows> & ("c: my Ordner \ script \ PS1") -myArg 123 -anotherArg abc –
Sie können tatsächlich den relativen Pfad benutzen. \ script.ps1 –