Speichern Sie die Ausgabe der ForEach-in array in powershell

$data = @("server1","server2","server3")

foreach ($server in $data) {
    $results = (Test-Connection $server -count 1 | Measure-Object -Property ResponseTime -Average).Average
}

Ich versuche, herauszufinden, wie man die Ausgabe einer "ForEach", und speichern Sie die Ergebnisse in ein array, so kann ich dann vergleichen Sie Sie später. Ich konnte nicht kommen mit einem Weg, um dies zu tun noch.

  • $results = @( ForEach ( ... ) { ... } )
  • was ist der Unterschied zwischen $results = @( foreach ...) und $results = foreach ..., nicht wahr return array überhaupt? auch sollte nicht foreach etwas zurückgeben, damit das funktioniert?
  • @() immer return array. Auch im Falle von null oder ein Element.
  • also, wie funktioniert eine null-Länge-array helfen, die Ergebnisse zu vergleichen?
  • Es hilft durch die Beseitigung besonderer Fall, wenn mit null-Elemente PowerShell keine Rückgabe-array standardmäßig.
  • ja, ich verstehe, dass, aber das Ziel dieser person ist, um die Ergebnisse vergleichen zu so etwas nicht in ein array, wenn die foreach nichts zurückgibt, die er nicht bekommt, was er will, richtig?
  • Sorry, verstehe ich nicht deinen Punkt. Kann ich Fragen, ist es andersrum: Ist jeder Vorteil, nicht mit @() neben der Einsparung von drei Tastendrücke? Mein Standard ist die Verwendung @(), wenn ich erwarte, dass mehrere Rückkehr aus der Erklärung, nur um auf der sicheren Seite, vor allem in wiederverwendbare Skripte. Und, BTW, compare 1,2,3 @() vs compare 1,2,3 $null.
  • welp, ich Sprach über die Tatsache, dass Sie sollten eigentlich wieder einige Daten in der foreach Schleife, sonst werden Sie immer ein leeres array als Ergebnis? seinem Beispiel nichts zurückgibt, so... er wird immer ein leeres array, auch wenn er eigentlich pings etwas.

InformationsquelleAutor Aaron | 2017-02-07
Schreibe einen Kommentar