批处理文件 - 使用ping来测试网络连接

时间:2011-06-15 12:14:03

标签: windows file batch-file

使用批处理文件可以执行以下操作:

ping google.com

如果返回成功,则ECHO您已连接到互联网

否则返回ECHO您未连接到互联网

9 个答案:

答案 0 :(得分:13)

您可以使用以下代码段:

@echo off
Ping www.google.de -n 1 -w 1000
if errorlevel 1 echo Not connected

答案 1 :(得分:4)

这是一个脚本,每次互联网脱机时,都会反复检查并将时间(从系统时钟)和“互联网离线”写入C:\ Internet.txt的日志文件。 不幸的是,日志文件中的最新行将出现在最后 - 我不知道如何使它出现在顶部;)

顺便说一句: 我将等待时间(-w)设置为20秒,因为我使用的是3G加密狗(带有2G互联网),所以20s通常是确定互联网是否真的失效或其他问题的唯一方法...您可以随意将其更改为5000,持续5秒,或者完全删除“-w 20000”以保留默认设置。

@echo off

:START

ping -n 4 4.2.2.2 -w 20000 >nul

if %errorlevel% == 1 (
  echo Internet offline >> C:\Internet.txt
  Time /t >> C:\Internet.txt
)

Timeout /t 30
@set errorlevel = 0

GOTO START

答案 2 :(得分:1)

这是一个帮助您入手的脚本:

http://www.techimo.com/forum/networking-internet/73769-handy-batch-file-check-network-connectivity.html

注意:如果您的系统不是英文,则必须修改脚本中使用find命令从ping的输出中过滤Reply from到相应的字符串中的行。系统的语言。

答案 3 :(得分:1)

@echo off
echo Checking connection
ping -n 1 www.google.com >nul
if errorlevel 1 (
  cls
  echo Failed
  pause>nul
  exit
)

cls
echo Success!
pause>nul
exit

答案 4 :(得分:1)

基于@CShulz的答案,这里有一个'打印'的脚本“只有在没有连接时才会连接”,否则它将每隔30秒静默循环测试一次。第一次ping测试连接&如果出现问题,则会输出错误消息。第二次ping通过ping localhost来增加30秒的等待。

@echo off
:loop
ping www.google.com -n 1 -w 5000 > nul
if errorlevel 1 echo Not connected
ping -n 30 127.0.0.1 > nul
goto loop

答案 5 :(得分:0)

@echo off
:loop
ping www.google.com -n 1 -w 5000 >NUL
if errorlevel 1 echo Not connected
goto Loop

答案 6 :(得分:0)

echo Testing Internet Connection of google.com
@echo off
:loop
ping google.com -n 1 -w 5000 > nul
if errorlevel 1 echo %date% - %time% Not connected >> pingtestlog.txt
ping -n 30 127.0.0.1 > nul
goto loop

答案 7 :(得分:0)

我了解这是一个老话题,但这还是我的贡献。

@echo off

TITLE Network Connection Watchdog

:: Use Windows "Task Scheduler".
:: Set to run at "Startup" with a delay and interval of your choice.
:: Remember to tick "Run with highest privileges".

:: Last command will only be executed if all pings fail.

set /a pc=0
set /a total=0

:: Your preferences
set if="Wi-fi" &:: Find your interface name with [netsh interface show interface].
set ip=192.168.0.1
set /a pt=10 &:: Set amount of pings to be executed.

:loop
set /a pc+=1
ping %ip% -n 1 -w 100 | find "TTL=" >NUL 2>&1
for /f %%a in ('echo %errorlevel%') do set p%pc%=%%a

set /a total+=p%pc%
if not %pc%==%pt% goto loop

if not %total%==%pt% (
goto eof
) else (
netsh interface set interface %if% disable
ping localhost -n 5 >NUL 2>&1
netsh interface set interface %if% enable
)

:eof
exit

答案 8 :(得分:0)

这个基本脚本可以持续 ping google.com 并测试您的互联网连接。脚本将循环运行,直到您关闭窗口。

@echo off
:loop
ping www.google.com -n 1 -w 5000 > null
    if not errorlevel 1 set msg=Your are connected with internet...
    if errorlevel 1 set msg=No Internet...
cls
color 0a
echo %msg%
goto loop