Основываясь на предоставленной вами информации, вот быстрый пример использования FOR /F
, , как указано в разделе комментариев .
@Echo Off
:PingIt
ClS
Set /P "IP=Host to ping: "
Echo "%IP%"|"%__AppDir__%findstr.exe" "\"[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\"">NUL^
||GoTo PingIt
Echo Started pinging at: %TIME%
For /F "Tokens=1-7,9" %%G In (
'""%__AppDir__%PING.EXE" %IP%|"%__AppDir__%findstr.exe" "ms$ data""'
)Do If "%%N"=="" (Echo(%%G %%H %%I %%J %%K %%L %%M)Else Echo Reply: time=%%N
Pause
Код включает в себя: проверка «лучше, чем ничего» ввода вашего конечного пользователя, прежде чем пытаться использовать его в качестве IP-адреса. Он также включает в себя необязательную команду Pause
, предназначенную только для отображения выходных данных до закрытия окна cmd.exe, (зависит от вашего метода вызова сценария) .
Обратите внимание что в примере не учитываются ответы, не прошедшие проверку связи, например Request timed out.
. Эти случаи выходят за рамки вашего вопроса, поэтому я предоставил вам возможность разобраться с самим собой.