如何在没有单位ms的情况下从命令PING获得响应时间?

时间:2016-06-27 11:37:51

标签: batch-file ping

我想知道是否可以在一个没有“ms”的变量中获取ping,并且能够与变量进行一些乘法。

我的实际代码:

@ECHO OFF
CALL :ping google.com
SET PING1=%ms%
ECHO %ping1%
GOTO :EOF

:ping
SET ms=Error
FOR /F "tokens=4 delims==" %%i IN ('ping.exe -n 1 %1 ^| FIND "ms"') DO SET ms=%%i
GOTO :EOF

2 个答案:

答案 0 :(得分:3)

ms添加到您的delims FOR /F "tokens=4 delims==ms" ...

答案 1 :(得分:1)

要修复现有代码,您只需set "ms=%ms:ms=%"即可删除值中的“ms”。

我不久前学会了nifty method of pinging,可能符合您的需求。

@echo off & setlocal
call :ping www.google.com ms

echo %ms%
goto :EOF   

:ping <host/IP> <return_var>
setlocal
set "responsetime=Error"
for /F %%I in (
    'wmic path win32_pingstatus where "address='%~1'" get responsetime /value'
) do 2>NUL set /a %%I
endlocal & set "%~2=%responsetime%" & goto :EOF