2013-05-03 45 views
0

我想編寫一個腳本,實際上可以ping另一臺計算機並獲取平均數字。現在我有一個腳本根據需要獲取平均ping,並顯示它,但它有'ms'前綴,我想擺脫它。我似乎無法找到已經在Windows中的cut等效(好吧,我確實發現了,但我無法讓現有的腳本和它一起工作)(它應該在默認情況下在cmd.exe中)。剪切cmd.exe腳本響應的最後2個字符

我的腳本:

FOR /F "usebackq skip=11 tokens=6 delims== " %i IN (`ping host2.internal`) DO @echo %i 

我得到:197ms,但我需要它看起來像:197

由於

回答

1

DO @set FOO=%i & echo %FOO:~0,-3% 

該分配的%i給一個臨時變量FOO值以便更換DO部分,然後可以使用該外殼的子串的提取能力(SET /?用於解釋) 。我剃掉三個字符而不是兩個,因爲%i包含尾部空格。

+0

謝謝! 'FOR/F「usebackq skip = 11 tokens = 6 delims ==」%i IN(\'ping host2.internal \')DO @set FOO =%i&echo%FOO:〜0,-4%'很好地工作(留下〜0,-3導致'197m') – 2013-05-03 12:31:35

+0

(在Windows 7上測試過)我相信你需要將'echo%FOO:〜0,-3%'改爲'echo%FOO:〜0,-2 %'作爲-4意味着從末尾的位置0到4的字符串。結果長於3位且短於3位的結果在這裏-3和-4都不合適。 – JimR 2013-05-03 13:28:53

+0

@JimR:在我的機器「-3」上是正確的。顯然有一些小的差異,不知道它們來自哪裏。 – Jon 2013-05-03 13:30:08

1

這在Win 8中適用:-4是IPV6也有效的場合所必需的。

FOR /F "tokens=5 delims==<ms" %i IN ('ping -4 www.google.com ^|find "Reply from"') DO @echo %i