我只是想獲得的所有東西的ping返回的最後一個號碼:(M)。multiline正則表達式捕獲在PowerShell中失敗的最後一個數字?
$s = ping 129.69.1.153 | out-string
$s
if ($s -match '(?m).+(\d+)ms') {
$Matches
}
谷歌說是多和+應該是貪婪越好。
但我得到的只是第二行的最後一個數字,而不是最後一行?
Ping wird ausgeführt für 129.69.1.153 mit 32 Bytes Daten:
Antwort von 129.69.1.153: Bytes=32 Zeit=31ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=26ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=27ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=25ms TTL=51
Ping-Statistik für 129.69.1.153:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 25ms, Maximum = 31ms, Mittelwert = 27ms
match: ..
Name Value
---- -----
1 31
0 Antwort von 129.69.1.153: Bytes=32 Zeit=31ms
即使
$s.Replace("`n","").Replace("`r","")
後平,並在比賽前非常符合第二條線的MS?
任何想法如何以簡單的方式解決這個簡單的請求?
謝謝你的答案,但鬼混我已經喜歡它(SB):
$s = ping 129.69.1.153 | out-string
if ($s -match '(?s).+\D(\d+)ms') { $Matches }
該做它(一個或多個):
Ping wird ausgeführt für 129.69.1.153 mit 32 Bytes Daten:
Antwort von 129.69.1.153: Bytes=32 Zeit=25ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=27ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=25ms TTL=51
Antwort von 129.69.1.153: Bytes=32 Zeit=27ms TTL=51
Ping-Statistik für 129.69.1.153:
Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
(0% Verlust),
Ca. Zeitangaben in Millisek.:
Minimum = 25ms, Maximum = 27ms, Mittelwert = 26ms
match: ..
Name Value
---- -----
1 26
0 ...
我不知道爲什麼 - 但它的工作原理。
什麼是PowerShell中的以下你有什麼版本?測試連接是在cmdlet中構建的,用於執行與ping類似的操作(ICMP數據包) – Koliat 2014-09-02 12:22:50
您可以顯示您嘗試捕獲的內容嗎?請求不清楚...你想要最後一個響應時間?那麼從你的樣本數據來看,它會是25ms? – 2014-09-02 13:10:46
@Noah Sparks:我想要27ms的平均值:Mittelwert = 27ms。這是最後一個號碼。 – gooly 2014-09-02 13:29:32