批处理 从文件中读取内容ping多个ip

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:30:11
@echo off
echo %date%>>pinRecord.txt
echo.
for /f %%i in (IP.txt) do (
@rem show ip
echo %%i
ping %%i
@rem show ERRORLEVEL
echo %ERRORLEVEL%
if %ERRORLEVEL%==0 echo ping入成功
if %ERRORLEVEL%==1 echo %%i>>pinRecord.txt
echo.
)
pause
cls
这是我在IP.txt文件中读取ip,格式如下:
192.169.5.13
127.0.0.1
192.169.1.108
192.169.1.112
将ping不通IP存到pinRecord.txt文档中,不知道为什么每次循环ERRORLEVEL的值均是0,请教大家,帮我解决,谢谢!

写得太复杂了。。

@echo off
echo %date%>>pinRecord.txt
echo.
for /f %%i in (IP.txt) do (
ping -n 1 %%i >nul && echo %%i ping入成功 || echo %%i ping入失败 && echo %%i>>pinRecord.txt
)
echo.
echo.检查完成.任意键退出并查看pinRecord.txt
pause>nul
start pinrecord.txt

我小改了下,看看是不是一样能实现你需要的目的??

@echo off
echo %date%>>pinRecord.txt
echo.
for /f %%i in (IP.txt) do (
@rem show ip
echo %%i
net use \\%%i\ipc$ >nul 2>nul
@rem show ERRORLEVEL
echo %ERRORLEVEL%
if %ERRORLEVEL%==0 echo ping入成功
if %ERRORLEVEL%==1 echo %%i>>pinRecord.txt
echo.
)
pause
cls

给你点提示:

这样改才行~
set a=1
for /l %%i in (1,1,10) do (
for /f "tokens=%a%" %%j in (IP.txt) do (
echo %%j
ping %%j
echo %ERRORLEVEL%
if %ERRORLEVEL%==0 echo ping入成功
if %ERRORLEVEL%==1 echo %%j>>pinRecord.txt