在批处理文件中存储ping错误

时间:2017-06-21 20:31:12

标签: batch-file cmd

我正在处理一个记录ping结果的批处理文件。

我使用此代码存储值:

false

但由于某些原因,当ip没有ping(100%丢失)时,我无法存储任何值,所有我得到的回声都是关闭的。

我甚至尝试过使用ERRORLEVEL = 1但仍然没有。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

问题是当ping未连接时,永远不会设置RESPONSE变量。从脚本中删除或注释@ECHO OFF以查看实际发生的情况。

C:\src>TYPE x.bat
FOR /F "usebackq tokens=1-9 delims==< " %%a IN (`PING -n 1 -4 -w 2500 192.168.0.2`) DO (
    IF "%%h"=="TTL" (SET RESPONSE=%%g)
)
echo %RESPONSE%

C:\src>CALL x.bat

C:\src>FOR /F "usebackq tokens=1-9 delims==< " %a IN (`PING -n 1 -4 -w 2500 192.168.0.2`) DO (IF "%h" == "TTL" SET RESPONSE=%g )

C:\src>(IF "" == "TTL" SET RESPONSE=data: )

C:\src>(IF "" == "TTL" SET RESPONSE= )

C:\src>(IF "" == "TTL" SET RESPONSE= )

C:\src>(IF "(100%" == "TTL" SET RESPONSE=1 )

C:\src>echo
ECHO is on.