Windows批处理 - 用笔记本开WiFi
Posted EZhex1991
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows批处理 - 用笔记本开WiFi相关的知识,希望对你有一定的参考价值。
收到好友提醒,说这段时间写的文章一点实用性都没有。。。而且有点难懂。。。
回头又看了一眼,其实并不是命令难懂,是我按照自己的想法,关注点一直都在设计上。为了保证所谓的“通用性”“重用性”和“可扩展性”,反倒把简单的东西弄得复杂了。。。乱七八糟的命令,实际上起到关键作用的只是那么一两句,所以显得不知所云。。。
想了想,还是得先从“实用性”开始。先来一个比较常用的吧——使用无线网卡开WiFi。
虽然标题是“用笔记本开WiFi”,但实际上只要是有无线网卡的应该都可以。
先上代码:VirtualWiFiHost.bat
@echo off
setlocal EnableDelayedExpansion
echo Set your wifi name:
set /p ssid=
:setpassword
echo.
echo Set your wifi password:
set /p key=
if "!key:~7,1!" leq "" (
echo The password you have entered is not valid^^!
echo Password must be at least 8 characters long^^!
goto setpassword
)
echo.
netsh wlan set hostednetwork mode=allow ssid=!ssid! key=!key!
netsh interface set interface name="无线网络连接" admin=enable
netsh interface set interface name="Wireless Network Connection" admin=enable
netsh interface set interface name="无线网络连接 2" admin=enable
netsh interface set interface name="Wireless Network Connection 2" admin=enable
netsh interface set interface name="无线网络连接 3" admin=enable
netsh interface set interface name="Wireless Network Connection 3" admin=enable
netsh wlan start hostednetwork
echo Wifi set complete^^!
echo username=!ssid!
echo password=!key!
pause>nul
逻辑是:
- 先接受一个字符串输入,作为虚拟无线网的主机名;
- 再接受一个字符串输入,作为虚拟无线网的密码,如果密码第8位是空的(长度小于8),那么提示让用户重新输入;
- 使用主机名和密码设置虚拟无线网主机;
- 把虚拟无线网的模式设置成启用
- 开启虚拟无线网;
- 输出无线网的用户名和密码;
其实这个代码中,同样因为考虑到通用性,加上了第4步。因为有人告诉我,在运行netsh wlan start hostednetwork
的时候出现了“hosted network couldn’t be started.The group or resources is not in the correct state to perform the required operation.”这样的报错。
如果某台电脑上确实有无线网卡,驱动也安装的正确,那么报错的原因就有这样一种可能:虚拟的无线网络连接在“网络和共享中心”中被禁用了。
这种虚拟的网络连接,一般自动命名是“无线网络连接”或者“Wireless Network Connection”,后面可能会跟个空格和标号。那么我们就先将这个连接启用,然后再开始。
其实说起来,有些鼠标10秒可以解决的异常,额外的提高“通用性”的代码可能需要用10分钟去查命令,20分钟查作用,30分钟查参数。不过个人认为,任何一种程序,都应该考虑到各种可能性去适应尽可能多的用户,而不是让用户手动更改环境去满足你的运行需求。
以上是关于Windows批处理 - 用笔记本开WiFi的主要内容,如果未能解决你的问题,请参考以下文章