Abrufen aller benannten Parameter von Powershell einschließlich leerer und gesetzter Parameter

9

Ich versuche einen Weg zu finden, alle Parameterinformationen von einem Powershell-Skript zu erhalten. Ex-Skript:

%Vor%

Ich möchte die Werte von $bar und $baz auf dynamische Weise erhalten, ohne vorher die Namen der Parameter zu kennen.

Ich habe durch $MyInvocation Eigenschaften und Methoden geschaut, aber ich sehe nichts außer Parametern, die gesetzt / übergeben wurden.

Update 1:

Ich bin kurz davor, es zu bekommen:

%Vor%

Wenn ich die Skriptparameter gegenüber den Standardparametern herausfiltern könnte, wäre es gut zu gehen.

Update 2: Die endgültige Arbeitslösung sieht so aus:

%Vor%     
Eric Longstreet 04.02.2014, 17:50
quelle

6 Antworten

16

Überprüfen Sie diese Lösung. Dies verwendet das CmdletBinding() -Attribut, das einige zusätzliche Metadaten durch die Verwendung der integrierten Variable $PSCmdlet bereitstellt. Sie können:

  1. Erhalte dynamisch den Namen des Befehls mit $PSCmdlet
  2. Erhalte eine Liste der Parameter für den Befehl mit Get-Command
  3. Untersuchen Sie den Wert jedes Parameters mithilfe des Cmdlet Get-Variable

Code:

%Vor%

Ausgabe

Die Ausgabe des Befehls sieht folgendermaßen aus:

%Vor%     
Trevor Sullivan 04.02.2014, 18:54
quelle
10

Um den Wert dynamisch zu lesen, verwenden Sie die Funktion get-variable / cmdlet

%Vor%

Um alle Parameter auszudrucken, machen Sie folgendes

%Vor%     
JaredPar 04.02.2014 17:53
quelle
2

Ich fand das am nützlichsten für PS4 (Windows 2012 R2) - es enthält Standardwerte / optionale Parameter:

%Vor%     
cslotty 21.02.2017 11:37
quelle
1

Ich habe mit den 2 Lösungen gespielt, die ich in diesem Thread mochte, sie funktionieren beide. Allerdings musste ich einen Fehler bei fehlenden Parametern für ein Build-Skript erzeugen

%Vor%     
Kelly Davis 23.06.2017 17:31
quelle
0
%Vor%

Das hat für mich funktioniert.

    
abhirathore2006 18.02.2015 07:48
quelle
0

Hoffentlich finden manche diesen One-Liner nützlich:

%Vor%

Ergebnis

%Vor%     
Janos 14.11.2017 16:40
quelle

Tags und Links