分享

利用RASDIAL命令实现一键断开/连接 拨号上网的bat脚本

 小雪初晴i 2022-01-02

前言

由于卤肉饭同学当前需要 利用账号密码来进行 拨号上网,然鹅每次都需要打开网络设置-拨号等界面,需要点击多次才能完成,实属麻烦,所以查阅资料后编写了个bat脚本来实现一键连接/断开


直接上bat文件内容

如下:

@echo offfor /f  %%i in ('ipconfig ^| findstr PPP') do (if ["%%i"]==["PPP"]  ( 	rasdial /disconnect && echo ----------------------------------宽带已断开----------------------------------- && echo -------------------------------copyright:卤肉饭--------------------------------&& ping 127.0.0.1>nul &&exit) )RASDIAL  "宽带连接" zhexiezhanghao zhexiemima
echo ----------------------------------宽带已连接-----------------------------------echo -------------------------------copyright:卤肉饭--------------------------------ping 127.0.0.1>nul
exit
rem v1.0.0 build 2021-06-30 22:56 by 卤肉饭

总结

思路:

通过判断ipconfig 命令的返回值中是否有ppp(即宽带拨号上网的网卡信息),来判断当前是否联网。

知识点:

1.cmd中的for命令

语法:For %%i in (Command1) doCommand2

  • /f 文件解析,读文件,一次读一行

  • %%i 是循环变量

  • Command1是for里面的第一个参数,可以是一个或多个

  • 把Command1赋值给%%i,然后执行Command2,直到所有的元素都执行一遍结束循环

2.转义符是^
3.Rasdial 是cmd自带命令
语法:rasdial ConnectionName [UserName [{Password | *}]]

参考的csnd资料 链接
cmd命令的参考资料
Rasdial 的参考资料

所遇问题:

  • 我们常用创建bat方式是:先创建txt文档,然后改后缀名称。但要注意txt默认编码现在是utf-8,但cmd中识别的编码是ANSI,如果有汉字就会报错,需要把txt文件另存为转换一下。(------------------------------麻痹大坑啊------------------------------------------)

  • bat文件中不可随意回车,会影响执行

  • 吐槽~读取命令的返回值要用for循环(比较鸡肋)

  • 另外里面的ping只是为了延时关闭窗口,另外也可以验证网络通断

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多