我有一个脚本来连续ping通一组计算机(存储在SiteName.txt中),并且一旦计算机联机,计数器就会增加,并且该计算机将从列表中删除,因此不会再次ping(我只需要知道(如果机器已经在线,则不是在线)。
我遇到的问题是,我注意到在建立它们的站点的IP地址上出现了一些幻影ping(并且该IP尚未被另一台计算机接管),因此我得到了误报。
我当前的代码是:
@echo off & setlocal EnableDelayedExpansion
TITLE %~n0
set /a counteron=0
for /F %%a in (%~n0.txt) do set "NVC=!NVC! %%a"
:ping
ping -n 61 127.0.0.1>nul
for %%i in (%NVC%) do (
ping %%i -n 1 | find "TTL=" >nul
if !errorlevel! GEQ 1 (
echo %%i is offline.
) else (
set /a counteron+=1
echo %%i is online
set "NVC=!NVC: %%i=!"
)
)
echo.
cls
echo. %counteron% machines are online.
if defined NVC goto :ping
cls
echo All machines in %~n0 are online.
pause
可以执行相同的操作,但是如果IP的前三个八位位组与特定的集(10.79.208.xxx)相匹配,那么它仍然会脱机出现吗?
提前致谢
也许
ping %%i -n 1 | find "TTL=" |findstr /b /l /v /c:"Reply from 10.79.208." >nul
errorlevel
仅当两者TTL=
都找到并且以(/b
)开头的/l
字符串为文字字符串/c:
“ Reply from 10.79.208”时,才应将其设置为零。是/v
不是发现
我相信这是你的追求...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句