Kann in einem PowerShell-Skript festgestellt werden, ob ein Standardparameterwert verwendet wird?

8

Nehmen wir an, ich habe ein einfaches Skript mit einem Parameter, der einen Standardwert hat:

%Vor%

Nehmen wir an, ein Benutzer führt das Skript wie folgt aus:

%Vor%

Gibt es irgendeine Möglichkeit, dass das Skript wissen kann, dass der Benutzer explizit einen Wert eingegeben hat (welcher zufällig derselbe ist wie der Standard), anstatt dass der Standard automatisch entschieden wird?

In diesem Beispiel wird das Skript eine Ausgabe an die angegebene Datei ausgeben. Wenn die Datei nicht vom Benutzer angegeben wurde (dh der Standard wurde automatisch verwendet), erzeugt das Skript nicht einen Fehler, wenn es nicht in die Datei schreiben kann Standort und wird einfach weitermachen. Wenn der Benutzer jedoch den Speicherort angegeben hat und das Skript nicht in der Lage ist, an diesen Speicherort zu schreiben, sollte dies zu einem Fehler führen und stoppen und den Benutzer warnen. Wie könnte ich diese Art von Logik implementieren?

    
Scott 29.01.2014, 15:09
quelle

2 Antworten

14

Der einfachste Weg, um zu bestimmen, ob ein Parameter angegeben wurde oder nicht, ist ein Blick auf $ PSBoundParameters. Zum Beispiel:

%Vor%     
Jason Shirk 29.01.2014, 22:25
quelle
1

Würde das für Sie funktionieren?

%Vor%

Das Validierungsskript wird nur ausgeführt und löst einen Fehler aus, wenn es nicht in den Dateipfad schreiben kann, der mit dem Parameter -logOutput übergeben wurde. Wenn der Parameter nicht angegeben wird, wird der Test nicht ausgeführt und $ logOutput wird auf den Standardwert gesetzt.

    
mjolinor 29.01.2014 15:45
quelle

Tags und Links