我遇到了我无法理解的情况,我正在尝试执行一个批处理文件,其中他循环 200 次,并且在每个循环中他 ping 主机,如果 ping 成功,他会执行一个命令。这是我得到的:
@echo off
for /L %%N IN (1, 1, 200) DO (
ping -n 1 192.1.22.%%N
if not ERRORLEVEL 1 (
set pingresult=true
goto done
)
)
set pingresult=false
:done
if %pingresult% == true (
echo Pikachu
) else (
echo "Offline!"
)
Run Code Online (Sandbox Code Playgroud)
它不起作用。
感谢 aschipfl 我找到了答案!
你只需要在命令| find "TTL=" >nul之后使用ping,因为这样如果 ping 成功,他就会传递一个 TTL,并且| find "TTL=" >nul将 grep 它进行验证。这是我从网站上获得解决方案的示例。
ping -n 1 192.168.1.1 | find "TTL=" >nul
if errorlevel 1 (
echo host not reachable
) else (
echo host reachable
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19197 次 |
| 最近记录: |