Board logo

标题: [网络连接] 使用ping与tracert判断网路是否通畅 [打印本页]

作者: 风澜翼翔    时间: 2014-6-24 15:46     标题: 使用ping与tracert判断网路是否通畅

我的代码是这样的,但是在路由的时候无论有没有通路都被判断成有通路的了,求大神指教
@echo off
set now= %date% %time%

echo %now%>>tracerted.txt
echo %now%>>nottracerted.txt
echo %now%>>pinged.txt
echo %now%>>notpinged.txt

for /f %%i in (IP.txt) do (
    ping -w 1 -n 4 %%i &&echo %%i >>pinged.txt||echo %%i>>notpinged.txt
    tracert -h 5 %%i &&echo %%i >>tracerted.txt||echo %%i>>nottracerted.txt
)
start tracerted.txt
start nottracerted.txt
start pinged.txt
start notpinged.txt
作者: 风澜翼翔    时间: 2014-6-24 15:46

自己顶一下,坐等大神
作者: rs369007    时间: 2014-6-24 18:56

tracert -h 5 %%i &&echo %%i >>tracerted.txt||echo %%i>>nottracerted.txt

改为:(tracert -h 5 %%i |findstr /C:"Request timed out"&&echo %%i >>nottracerted.txt)||echo %%i>>tracerted.txt
作者: PowerShell    时间: 2014-6-24 22:31

我专门写了个ping的powershell脚本,此脚本基本万能。   

bat接收powershell返回值     http://www.bathome.net/thread-30668-1-1.html
返回ping超时次数,和统计时间的ps脚本 http://www.bathome.net/thread-30586-1-1.html

那么你如何用这个脚本帮你呢?
比如ping的次数是5 ,5次全不通,将返回布尔值,$true。只要1次能ping通 则返回布尔值$false
这个   能帮到你么?
作者: 522235677    时间: 2014-6-24 22:39

至于ping 你这样写判断不了。
我都是这样写的。
  1. ping 192.168.1.1 -n 1
  2. if errorlevel 1 (echo 不通) else (echo 通)
复制代码

作者: 风澜翼翔    时间: 2014-6-25 07:27

回复 3# rs369007
  这个findstr是需要保存到文件夹中再取得吧?
我尝试了一下这个,还没运行完一轮就被迫终止了
作者: 风澜翼翔    时间: 2014-6-25 07:28

回复 4# PowerShell
ping相关的IP是可以返回布尔值得,但是tracert好像不返回布尔值,所以没办法判断
作者: 风澜翼翔    时间: 2014-6-25 07:29

回复 5# 522235677
我是需要在文件之中读取相关IP来ping的,按照ping所得的布尔值类型可以判断是否通
作者: 522235677    时间: 2014-6-25 19:25

回复 8# 风澜翼翔


                            无语了
作者: 风澜翼翔    时间: 2014-6-26 09:41

回复 9# 522235677
哎,我也觉得




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2