转眼就到五一了,依旧是宅了几天,上午看看NBA,晚上看看斯诺克,很舒服的小日子,话说问题都是生活中碰到的,今天算是深有体会,上午看NBA无意间发现手机看比用电脑要快好多,鉴于路由器老是不太稳定,所以决定用笔记本把网分出来试试,相信这种小把戏很多人都玩过吧,问题就是这样被发现的,虽然就是两三行代码的问题,但是还是上网找了一大堆的教程,甚至重新看了下win7 承载网络相关的东西,说来也巧,下午刚好看到了某大牛的bat学习日志,一时兴起决定写了bat脚本放在桌面上方便以后分网.
果然,上网一查好多人都干了同样的事情, 一大堆各种各样的脚本,各种论坛博客多的数不清,我想闲着也是闲着,也算是学习下bat脚本,就自己动手写了一个,留个备份以后有需要了还能找出来看看,闲话就说到这里吧,直接上代码,很多东西都是借鉴和学习的,自己加了获得管理员权限的代码,别的也不用仔细解释了,相信看客都能理解,要用的直接下附件吧,代码简单,比较实用,顺便留一个小问题,不知道哪位看客能帮忙解决下,问题就是初次allow hostednetwork以后创建hostednetwork填写网络名称和密码以后需要手动到网络和共享中心允许有线网通过hostednetwork共享,这个过程还是需要鼠标点击才能完成,不知道哪位高人能够在bat脚本里面把这个问题也解决了,直接运行个脚本就搞定多漂亮,对吧?
@echo off
rem 关闭echo
title Virtual Wi-Fi
rem 修改标题
COLOR A0
rem 设置背景色为A,前景色为0
mode con cols=60 lines=20
rem 设置终端显示大小
rem 检查是否已获取管理员权限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
rem 如果errorlevel被置位(即不等于0),则表明当前不具有管理员权限,需要申请
if '%errorlevel%' NEQ '0' (
echo.
echo ************** 请点击确定按钮以获取管理员权限 **************
goto UACPrompt
) else (
goto gotAdmin
)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:BEGIN
cls
rem 清屏
echo ************************************************************
echo ** 1.SHOW HOSTEDNETWORK **
echo ** 2.ALLOW HOSTEDNETWORK **
echo ** 3.CREAT HOSTEDNETWORK **
echo ** 4.DISALLOW HOSTEDNETWORK **
echo ** 5.START HOSTEDNETWORK **
echo ** 6.STOP HOSTEDNETWORK **
echo ** 7.EXIT **
echo ************************************************************
set /p task=
rem 阻塞,等待用户输入
if %task%==1 goto SHOW
if %task%==2 goto ALLOW
if %task%==3 goto CREAT
if %task%==4 goto DISALLOW
if %task%==5 goto START
if %task%==6 goto STOP
if %task%==7 goto END
echo.
echo 输入错误,请重新输入......
goto BEGIN
:SHOW
cls
netsh wlan show hostednetwork
echo.
echo 请输入任意键返回主界面......
pause>nul
goto BEGIN
:ALLOW
cls
netsh wlan set hostednetwork mode=allow
if '%errorlevel%' NEQ '0' (
echo 启用承载网络失败,输入任意键返回主界面......
)
pause>nul
goto BEGIN
:CREAT
echo 请输入承载网络名字(输入q放弃创建)
set /p WiFiName=
if '%WiFiName%' EQU 'q' (
goto BEGIN
)
echo 请输入承载密码(输入q放弃创建)
set /p Password=
if '%Password%' EQU 'q' (
goto BEGIN
)
netsh wlan set hostednetwork ssid=%WiFiName% key=%Password%
if '%errorlevel%' NEQ '0' (
echo 创建承载网络失败,输入任意键返回主界面......
)
pause>nul
goto BEGIN
:DISALLOW
cls
netsh wlan set hostednetwork mode=disallow
if '%errorlevel%' NEQ '0' (
echo 禁用承载网络失败,输入任意键返回主界面......
)
pause>nul
goto BEGIN
:START
cls
netsh wlan start hostednetwork
if '%errorlevel%' NEQ '0' (
echo 启动承载网络失败,输入任意键返回主界面......
)
pause>nul
goto BEGIN
:STOP
cls
CALL netsh wlan stop hostednetwork
if '%errorlevel%' NEQ '0' (
echo 关闭承载网络失败,输入任意键返回主界面......
)
pause>nul
goto BEGIN
:END
exit