[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理怎样查看网络是不是正常连接?

想求購一個測試網絡是不是連接正常的BAT,
程序默認為第五分鐘測試一次,自動ping一個地址 ,給此地址發送一個位字節,如果能P通窗口就不顯示,如果P不通就提示網絡已經斷開!
麻煩高手幫忙,不勝感激!

在我的程序里 我是这样写的,测试是OK
意思是如果网络不通就延时间300秒然后继续判断通不通
如果网络通的话那么就 跳到下一句
以下代码不知阁下是否满意

:chw
@echo off
@ping -n 2 smtp.163.com>nul ||@ping -n 300 127.0>nul & goto chw
echo. 网络已通
1

评分人数

    • Batcher: 请编辑自己的帖子,把代码放到code标签里面 ...PB -2

TOP

  1. set/p IP="请输入ip:"
  2. >1.js echo var d=new Date();d.setTime(d.getTime()+10*1000);
  3. >>1.js echo var s=''+d.getSeconds();
  4. >>1.js echo WScript.echo(s);
  5. :1
  6. ping -n 1 -l 1 %IP%>>ip.txt
  7. if errorlevel 1 echo 网络已经断开
  8. for /f "skip=3" %%i in ('cscript 1.js') do set a=%%i
  9. goto 2
  10. :2
  11. set b=%time:~6,2%
  12. if %b%==%a% goto 1
  13. goto 2
复制代码

TOP

回复 2楼 的帖子

這樣不是我要的,如果您還有好的點的想法可以來發表哦!

TOP

回复 3楼 的帖子

我是想程序開機就自動運行,自動ping一個IP地址,這個ip地址我會指定!不顯示窗口,每隔1分鐘運行一次,如果測試到網絡不通就有窗口顯示,提示網絡沒有接好!
程序可能比較長,希望高手前來救助!

TOP

不知道这个可以吗?
@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

TOP

:chw
@echo off
@ping -n 2 smtp.163.com>nul ||@ping -n 300 127.0>nul & goto chw
echo. 网络已通

楼主  小第比较菜,除了这个网络通不通的测试代码外,我想不到其他的法子了
实在抱歉,不过在我的程序里我是经常用那段代码的,现在还没有发现出错的问题存在
----------------------------------------------------------------------------------------------------------

TOP

回复 6楼 的帖子

好像不行哦,不但有窗口顯示而且測試了都沒有效果,繼續努力,呵呵!爭取能幫我想出來!

TOP

回复 7楼 的帖子

有想法就是好的,慢慢努力,其實我比你還要菜!

TOP

原帖由 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.

TOP

  1. @echo off
  2. set /p ip=请输入测试IP:
  3. :c
  4. ping /l 1 /n 1 %ip% |findstr /c:"timed out" &&echo %ip%網絡已經斷開
  5. choice /C yn /T 300 /n /d y
  6. goto  c:
  7. pause
复制代码
CHOICE是外部命令
http://bbs.bathome.net/thread-1726-1-1.html可以下载

TOP

回复 10楼 的帖子

我不知道你有沒有測試過,我運行他會顯示“這個時候不應該出現=%”什麽的!不是太明白哪里有問題!本人才會一個星期,所以不懂!

TOP

这个批我是运行过的,可能你的打字有问题,再写一下,C&就行了,另存为testgw.bat,运行tsetgw.bat,直接在命令行运行是不行的。目标地址是192.168.1.2,自己改.。再有10 的vbs可以实现窗口蕴藏。祝你好运。我这能帮到这里了。
testgw.bat
  1. @echo off
  2. setlocal enableextensions
  3. :Start  
  4. echo %time%
  5. call :ProcDelay 200
  6. rem 秒记时间间隔
  7. call :Testping
  8. echo %time%
  9. goto :EOF
  10. :ProcDelay delayMSec_
  11.   setlocal enableextensions
  12.   for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
  13.     :_procwaitloop
  14.     for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
  15.     set /a diff_=%now_%-%start_%
  16.   if %diff_% LSS %1 goto _procwaitloop
  17.   endlocal & goto :EOF
  18. :Testping
  19.   setlocal enabledelayedexpansion
  20.   rem 目标地址
  21.   ping -n 1  192.168.1.2 | findstr "TTL" >nul 2>nul
  22.   if !errorlevel! equ 0 (
  23. echo ok
  24.   )else (
  25.    notepad
  26.   )
  27. )
  28. goto :Start
  29. :EOF
复制代码

TOP

返回列表