Probleme der Rückkehr hashtable
Also wenn ich den folgenden code:
function DoSomething {
$site = "Something"
$app = "else"
$app
return @{"site" = $($site); "app" = $($app)}
}
$siteInfo = DoSomething
$siteInfo["site"]
Warum nicht $siteInfo["site"] return "Etwas"?
Kann ich sagen nur....
$siteInfo
Und es erfolgt die Rückkehr
else
Key: site
Value: Something
Name: site
Key: app
Value: else
Name: app
Was bin ich?
$siteInfo["site"]
zurückSomething
für mich.- für mich auch, powershell-version?
- Ok, ich habe ein paar mehr Infos. Ich habe nur ein einfacher Aufruf auf eine variable ($app) oben in meiner Funktion code. Was war eintretenden war, dass der Wert von $app und die hashtable zurückgegeben wurde, um die variable, die die Funktion aufgerufen wurde. Also wenn ich einen ($siteInfo | fl) wäre es für beide "else" und dann die beiden Schlüssel/Werte. Warum ist das so?
- Es scheint, dass da Sie haben
$app
ganz von allein auf einer Zeile, die Sie möchten, um etwas zu drucken auf den Bildschirm die Funktion selbst aber nicht an den Aufrufer zurückgeben. Sie können dies tun, mit derOut-Host
oderWrite-Host
cmdlets, die Anzeige des Objekts, aber nicht verpflichten, es an die pipeline. Zum Beispiel:Write-Host $app
oder$app | Out-Host
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In PowerShell Funktionen wieder jede und jeder Wert, der zurückgegeben wird, durch jede Zeile in der Funktion; eine explizite
return
- Anweisung ist nicht erforderlich.Den
String.IndexOf()
Methode gibt einen ganzzahligen Wert, also in diesem BeispielDoSomething
liefert '2' und die Hashtabelle als array von Objekten, wie gesehen, mit.GetType()
.Das folgende Beispiel zeigt 3 Möglichkeiten zum blockieren unerwünschter output:
Hier ist ein Beispiel, wie man wickeln Sie mehrere Anweisungen in einen Skriptblock zu erfassen unerwünschte Ausgabe:
$null = .{ <# function contents #> }, but I would rather use
Out-Null " und ähnliches, wenn nötig.$()
sind für$site
und$app
?@Rynant SEHR hilfreichen Beitrag, danke für die Nennung von Beispielen auf das verstecken Funktion Ausgang!
Meiner vorgeschlagenen Lösung: