宽带连接工具[bat]
功能概述:
本工具使用批处理编写,提供自动判断网络状态以决定断开或是连上网络,本月已用宽带时长,到月初自动清零。提供联网日志功能,可以记录下所有的连接或断开网络记录。如果连接失败,自动提示输入密码,特别适合每天要更换动态密码者使用。(windows系统可用)
从功能上说,我不需要这个脚本,不过留下作为bat使用的参考。
@echo off :retry ::窗口配置 title 宽带连接工具 mode con cols=50 lines=15 & color 02 ::检查配置文件是否存在,否,则创建。 if not exist netconfig.ini call:remd ::检查配置文件是否符合标准格式,否,则重新创建 findstr . "netconfig.ini">nul && cls||call:remd Setlocal Enabledelayedexpansion set bbj1=[宽带连接名称:] set bbj3=[用户名:] set bbj5=[密码:] set bbj7=[本月已用宽带时长] set bbj9=[时间显示开关] set bbj11=[宽带时长显示开关] set bbj13=[上网时间记录开关] set bbj15=[上次使用时间] call:extxt ::读取配置信息 Setlocal Enabledelayedexpansion set n=0 For /f "delims=" %%2 in (netconfig.ini) do ( Set /a n+=1 If !n!==2 set name=%%2 If !n!==4 set user=%%2 If !n!==6 set password=%%2 If !n!==8 set netsc=%%2 If !n!==10 set timekey=%%2 If !n!==12 set netimky=%%2 If !n!==14 set rizhiy=%%2 If !n!==16 set oldtime=%%2 If !n!==17 set olddate=%%2 ) ::判断月份差,清空宽带时长 set/a "boldm=(1%olddate:~5,2%-100)" REM echo %boldm% set/a "bm=(1%date:~5,2%-100)" REM echo %bm% set/a "cmon=%bm%-%boldm% if not %cmon%==0 call:rewrite 8 000000 rem echo %netsc% REM echo %cmon% ::对宽带时长进行变形 set/a "bnewsc1=%netsc%/3600 set/a "bnewsc2=%netsc%%%3600/60 set/a "bnewsc3=%netsc%%%3600%%60 set "bnewsc=%bnewsc1%小时%bnewsc2%分%bnewsc3%秒 rem echo %bnewsc% %bnewsc1% %bnewsc2% %bnewsc3% rem echo %name% %user% %password% call:clshow ::检测宽带状态自动判断连接或是断开 ::断开,并判定结果 rasdial|find "已连接">nul if %errorlevel%==0 ( rasdial %name% /DISCONNECT if %errorlevel%==0 ( echo 网络已成功断开! rem ping /n 2 127.1 >nul call:wrizi 网络成功断开 call:kdsclj call:rewrite 16 "%time%" 17 %date% rem ping /n 2 127.1 >nul exit ) if not %errorlevel%==0 ( echo 网络断开失败! ping /n 10 127.1 >nul & exit ) ) ::连接,并判定,更改 if %errorlevel%==1 ( rasdial %name% %user% %password% rasdial|find "已连接">nul if !errorlevel!==0 ( echo 网络已成功连接! call:wrizi 网络成功连接 call:rewrite 16 "%time%" 17 %date% ping /n 2 127.1 >nul exit ) if not !errorlevel!==0 ( call:clshow & color 0e echo 网络连接失败! echo ----------------------------- echo 更改宽带连接名称,请输入# echo 更改账号,请输入* echo 更改密码,请直接输入密码 set /p newpass= if !newpass!==* ( echo 请输入账号: set /p newuser= call:rewrite 4 !newuser! & goto:retry ) if !newpass!==# ( echo 请输入宽带连接名称: set /p newname= call:rewrite 2 !newname! & goto:retry ) if not !newpass!==* if not !newpass!==# ( call:rewrite 6 !newpass! & goto:retry ) ) ) ::测试结尾 rem echo 测试完成,按任意键退出。&pause>nul ::子程序 ::清屏,重显 :clshow cls echo 欢迎使用宽带连接工具! if %timekey%==1 echo 现在时间 %date% %time% echo 当前账号:%user% if %netimky%==1 echo 本月已用宽带时长:%bnewsc% goto:eof ::更改配置文件 :rewrite Setlocal Enabledelayedexpansion set index=0 for /f "delims=" %%i in (netconfig.ini) do ( set /a index+=1 set var!index!=%%i ) set var%1=%2 set var%3=%4 (for /l %%i in (1 1 !index!) do echo !var%%i!)>netconfig.ini goto:eof ::重新创建配置文件 :remd rem pause echo [宽带连接名称:]>"netconfig.ini" for %%1 in ( 宽带连接 [用户名:] 12345678910 [密码:] 123456 [本月已用宽带时长] 000000 [时间显示开关] 1 [宽带时长显示开关] 1 [上网时间记录开关] 0 [上次使用时间] "%time%" %date% )do echo %%1>>"netconfig.ini" goto:retry rem echo 欢迎使用宽带连接工具! goto:eof ::检测配置是否合法,否则,重置 :extxt set n=0 Setlocal Enabledelayedexpansion For /f "delims=" %%i in (netconfig.ini) do ( Set /a n+=1 set bb!n!=%%i rem echo bb!n!=%%i ) for /l %%i in (1 2 15) do ( rem if !bb%%i! neq !bbj%%i! echo "!bb%%i!""!bbj%%i!"&pause>nul if !bb%%i! neq !bbj%%i! call:remd ) goto:eof ::宽带计时累加(支持跨天) :kdsclj set/a "boldt=(1%olddate:~8,2%-100)*3600*24+(%oldtime:~1,2%)*3600+(1%oldtime:~4,2%-100)*60+(1%oldtime:~7,2%-100)" set/a "bt=(1%date:~8,2%-100)*3600*24+(%time:~0,2%)*3600+(1%time:~3,2%-100)*60+(1%time:~6,2%-100)" set/a "ctime=%bt%-%boldt% set/a "newsc=%netsc%+%ctime% call:rewrite 8 %newsc% goto:eof ::写入日志 :wrizi if %rizhiy%==1 echo %date% %time% %1 >> 网络连接日志.txt for %%i in (网络连接日志.txt )do if %%~zi GTR 10485760 del "%%i" goto:eof
转载自:https://www.cnblogs.com/pxyufeng/p/4159171.html