Rendite-Objekt aus der PowerShell mit einem parameter ("By Reference" - parameter)?

Habe ich ein PowerShell (2.0) Skript-Aufruf ein anderer. Ich will zurück bekommt, nicht nur den main-Ausgang, aber ein zusätzlicher Gegenstand, den ich separat verwendet werden, z.B. zur Anzeige einer Zusammenfassung Zeile in einer Nachricht.

Wir haben die Test2.ps1 wie das Skript aufgerufen wird:

param([String]$SummaryLine)
$Issues = "Potentially long list of issues"
$SummaryLine = "37 issues found"
$Issues

Und Test1.ps1 wie das Skript, das nennt es:

$MainOutput = & ".\Test2.ps1" -SummaryLine $SummaryOutput
$MainOutput
$SummaryOutput

Die Ausgabe ist einfach:

Potentially long list of issues

Obwohl der parameter $SummaryLine ist ausgefüllt, "Test2", $SummaryOutput bleibt undefiniert in Test1.

Definieren $SummaryOutput vor dem Aufruf von Test2 nicht helfen; es behält den Wert vor dem Aufruf von Test2.

Ich habe versucht, die Einrichtung $SummaryOutput und $SummaryLine als [ref] Variablen (wie man scheinbar mit Funktionen), aber die $SummaryOutput.Value-Eigenschaft ist $null nach Aufruf von Test2.

Ist es möglich in der PowerShell return einen Wert in einen parameter? Wenn nicht, was sind die workarounds? Direktes zuweisen von ein-Eltern-scoped variable in Test2?

InformationsquelleAutor Mark Berry | 2011-03-03
Schreibe einen Kommentar