标题: [网络连接] 批处理怎样查看网络是不是正常连接? [打印本页]
作者: smallpigs 时间: 2010-10-25 14:38 标题: 批处理怎样查看网络是不是正常连接?
想求購一個測試網絡是不是連接正常的BAT,
程序默認為第五分鐘測試一次,自動ping一個地址 ,給此地址發送一個位字節,如果能P通窗口就不顯示,如果P不通就提示網絡已經斷開!
麻煩高手幫忙,不勝感激!
作者: wuhengsi 时间: 2010-10-25 21:35
在我的程序里 我是这样写的,测试是OK
意思是如果网络不通就延时间300秒然后继续判断通不通
如果网络通的话那么就 跳到下一句
以下代码不知阁下是否满意
:chw
@echo off
@ping -n 2 smtp.163.com>nul ||@ping -n 300 127.0>nul & goto chw
echo. 网络已通
作者: leap 时间: 2010-10-26 13:24
- set/p IP="请输入ip:"
- >1.js echo var d=new Date();d.setTime(d.getTime()+10*1000);
- >>1.js echo var s=''+d.getSeconds();
- >>1.js echo WScript.echo(s);
- :1
- ping -n 1 -l 1 %IP%>>ip.txt
- if errorlevel 1 echo 网络已经断开
- for /f "skip=3" %%i in ('cscript 1.js') do set a=%%i
- goto 2
- :2
- set b=%time:~6,2%
- if %b%==%a% goto 1
- goto 2
复制代码
作者: smallpigs 时间: 2010-10-26 15:41 标题: 回复 2楼 的帖子
這樣不是我要的,如果您還有好的點的想法可以來發表哦!
作者: smallpigs 时间: 2010-10-26 15:47 标题: 回复 3楼 的帖子
我是想程序開機就自動運行,自動ping一個IP地址,這個ip地址我會指定!不顯示窗口,每隔1分鐘運行一次,如果測試到網絡不通就有窗口顯示,提示網絡沒有接好!
程序可能比較長,希望高手前來救助!
作者: shihao 时间: 2010-10-26 16:33
不知道这个可以吗?
@echo off
setlocal enableextensions
:Start
echo %time%
call rocDelay 200
rem 秒记时间间隔
call :Testping
echo %time%
goto :EOF
:ProcDelay delayMSec_
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
:_procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
set /a diff_=%now_%-%start_%
if %diff_% LSS %1 goto _procwaitloop
endlocal & goto :EOF
:Testping
setlocal enabledelayedexpansion
rem 目标地址
ping -n 1 192.168.1.2 | findstr "TTL" >nul 2>nul
if !errorlevel! equ 0 (
)else (
notepad
)
)
goto :Start
:EOF
作者: wuhengsi 时间: 2010-10-26 21:50
:chw
@echo off
@ping -n 2 smtp.163.com>nul ||@ping -n 300 127.0>nul & goto chw
echo. 网络已通
楼主 小第比较菜,除了这个网络通不通的测试代码外,我想不到其他的法子了
实在抱歉,不过在我的程序里我是经常用那段代码的,现在还没有发现出错的问题存在
----------------------------------------------------------------------------------------------------------
作者: smallpigs 时间: 2010-10-27 08:46 标题: 回复 6楼 的帖子
好像不行哦,不但有窗口顯示而且測試了都沒有效果,繼續努力,呵呵!爭取能幫我想出來!
作者: smallpigs 时间: 2010-10-27 08:47 标题: 回复 7楼 的帖子
有想法就是好的,慢慢努力,其實我比你還要菜!
作者: shihao 时间: 2010-10-27 11:14
原帖由 smallpigs 于 2010-10-27 08:46 发表
好像不行哦,不但有窗口顯示而且測試了都沒有效果,繼續努力,呵呵!爭取能幫我想出來!
不会吧???
第一个if里自己写点东西就行了,比如echo ok什么的。
如果网络正常,没有东西,如果ping不通就会弹出notepad,并停在那里,直到关闭notepad,批就再次运行了。
窗口顯示的问题不是dos批的问题,你可以自己写个vbs,不显示dos窗口。其实有个dos窗口也不错的。
vbs大概可以这样写:
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("cmd.exe /C d:\sihochina.bat", 0, TRUE)
'其中d:\sihochina.bat即为你要运行的批处理命令
运行test.vbs,这样那个窗口就没有了。"沒有效果“什么意思?能详细说说吗?比如,拔了网线没有notepad弹出了?
如果你事先些好个文本,比如:A.TXT,里面就写网络中断,然后那个notepad改为 noteapd a.txt.
作者: wc726842270 时间: 2010-10-27 13:36
- @echo off
- set /p ip=请输入测试IP:
- :c
- ping /l 1 /n 1 %ip% |findstr /c:"timed out" &&echo %ip%網絡已經斷開
- choice /C yn /T 300 /n /d y
- goto c:
- pause
复制代码
CHOICE是外部命令
http://bbs.bathome.net/thread-1726-1-1.html可以下载
作者: smallpigs 时间: 2010-10-27 16:18 标题: 回复 10楼 的帖子
我不知道你有沒有測試過,我運行他會顯示“這個時候不應該出現=%”什麽的!不是太明白哪里有問題!本人才會一個星期,所以不懂!
作者: shihao 时间: 2010-10-27 16:28
这个批我是运行过的,可能你的打字有问题,再写一下,C&就行了,另存为testgw.bat,运行tsetgw.bat,直接在命令行运行是不行的。目标地址是192.168.1.2,自己改.。再有10 的vbs可以实现窗口蕴藏。祝你好运。我这能帮到这里了。
testgw.bat- @echo off
- setlocal enableextensions
- :Start
- echo %time%
- call :ProcDelay 200
- rem 秒记时间间隔
- call :Testping
- echo %time%
- goto :EOF
-
- :ProcDelay delayMSec_
- setlocal enableextensions
- for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
- :_procwaitloop
- for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
- set /a diff_=%now_%-%start_%
- if %diff_% LSS %1 goto _procwaitloop
- endlocal & goto :EOF
- :Testping
- setlocal enabledelayedexpansion
- rem 目标地址
- ping -n 1 192.168.1.2 | findstr "TTL" >nul 2>nul
- if !errorlevel! equ 0 (
- echo ok
- )else (
- notepad
- )
- )
- goto :Start
-
- :EOF
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |