| @echo off & color 1F & title 热点助手0.7(预览版) --虚拟无线热点管理程序,适用于win7/win8 |
| (rem 程序名称 :热点助手 |
| |
| |
| |
| rem 宏命令 |
| set "RESTARTAP=netsh wlan set hostednetwork mode=allow &netsh wlan start hostednetwork 1>nul 2>nul &ping 127.0.0.1 1>nul 2>nul &netsh wlan stop hostednetwork 1>nul 2>nul &netsh wlan start hostednetwork" &rem 重启热点 |
| |
| setlocal EnableExtensions &rem 启用命令处理器扩展 |
| setlocal EnableDelayedExpansion &rem 启用延缓环境变量 |
| ) |
| |
| bcdedit /enum active 1>nul 2>nul |
| if not "!errorlevel!"=="0" ( |
| color E0 &rem 设置警告背景及字体颜色,背景-淡黄 字体-黑色 |
| echo 警告:检测到您可能没有以管理员身份运行本程序,这将使得部分功能失效。 |
| echo 提示:以管理员身份运行程序的方法:右键点击程序,然后选择“以管理员身份运行”。 |
| set /p mainmenu=您想要继续运行程序吗?[Yes/No]^: |
| if /i not "!mainmenu!"=="Yes" (goto End) |
| ) |
| |
| :Begin |
| cls |
| echo 提示:输入要进行的操作后的编号或字母,然后按回车键确认。 |
| echo; |
| echo 自动设置并启动无线热点………………1 预定管理…………………………2 |
| echo; |
| echo 开启无线热点……………………………3 关闭无线热点……………………4 |
| echo; |
| echo 设置SSID…………………………………5 设置密码…………………………6 |
| echo; |
| echo 显示客户端IP和物理地址………………7 检测驱动是否支持无线热点……8 |
| echo; |
| echo 查看网络相关信息………………………9 打开帮助页面……………………h |
| echo; |
| echo 退出程序…………………………………0 |
| echo; |
| |
| set /p mainmenu=请选择: |
| cls |
| |
| if "%mainmenu%"=="1" ( |
| echo 正在自动设置,这可能需要大约15秒的时间,请稍等…… |
| set "password=deepblue%random%" |
| netsh wlan set hostednetwork ssid=softAP key=!password! |
| %RESTARTAP% |
| if "!errorlevel!"=="0" ( |
| echo 无线热点的SSID为:softAP |
| echo 无线热点的密码为:!password! |
| echo; |
| echo 提示:如果忘记密码,请使用功能6重置密码。 |
| ) |
| ) |
| |
| if "%mainmenu%"=="2" ( |
| echo 定时关闭计算机…………………1 |
| echo 取消定时关闭计算机……………2 |
| echo; |
| echo 定时关闭无线热点………………3 |
| echo 取消定时关闭无线热点…………4 |
| echo; |
| echo 开机时启动无线热点……………5 |
| echo 取消开机启动无线热点…………6 |
| echo; |
| echo 退出回到主菜单…………………0 |
| echo; |
| set /p submenu= 请选择^: |
| cls |
| if "!submenu!"=="1" ( |
| echo 您想要在多少分钟后关闭计算机? |
| set /p shutdowntime=请输入: |
| echo; |
| set /a shutdowntime*=60 &rem 换算成分钟 |
| if not "!shutdowntime!"=="0" ( |
| shutdown -s -t !shutdowntime! |
| set /a shutdowntime/=60 |
| if "!errorlevel!"=="0" echo 命令执行成功,计算机将在 !shutdowntime! 分钟后被关闭。 |
| ) else echo 无效的输入,有效值是大于0的整数 |
| ) |
| if "!submenu!"=="2" ( |
| echo 正在取消定时关闭计算机 |
| shutdown -a && echo 已成功取消定时关闭计算机。 |
| ) |
| if "!submenu!"=="3" ( |
| echo 您想在几点关闭无线热点?(0~23) |
| set /p shutdowntime= 请输入: |
| if !shutdowntime! leq 9 set "shutdowntime=0!shutdowntime: =!" &rem 补齐两位并去掉空格,否则schtasks命令会报错 |
| set "shutdowntime=!shutdowntime!:00" |
| echo; |
| schtasks /create /sc daily /tn 定时关闭无线热点 /tr "cmd /q /c netsh wlan stop hostednetwork &schtasks /delete /tn 定时关闭无线热点 /f" /st !shutdowntime! /ru system /rl highest /f |
| if "!errorlevel!"=="0" echo 命令执行成功,无线热点将在 !shutdowntime! 关闭。 |
| ) |
| if "!submenu!"=="4" ( |
| echo 正在取消定时关闭无线热点 |
| schtasks /delete /tn 定时关闭无线热点 /f |
| ) |
| if "!submenu!"=="5" ( |
| echo 正创建开机时启动无线热点的任务 |
| schtasks /create /tn 开机时启动无线热点 /tr "cmd /q /c %RESTARTAP%" /sc onlogon /ru system /rl highest /f |
| ) |
| if "!submenu!"=="6" ( |
| echo 正在取消开机时启动无线热点 |
| schtasks /delete /tn 开机时启动无线热点 /f |
| ) |
| ) |
| |
| if "!mainmenu!"=="3" ( |
| echo 正在开启无线热点,这可能需要大约10秒的时间,请稍等…… |
| |
| %RESTARTAP% |
| ) |
| |
| if "%mainmenu%"=="4" ( |
| echo 正关闭无线热点,这可能需要大约5秒的时间,请稍等…… |
| netsh wlan stop hostednetwork &rem 关闭无线热点 |
| netsh wlan set hostednetwork mode=disallow &rem 禁用无线热点模式 |
| ) |
| |
| if "%mainmenu%"=="5" ( |
| echo 提示:直接回车将设置为默认值 &echo; |
| set "oldssid=" |
| set "newssid=" |
| for /f "skip=4 tokens=1* delims=:" %%i in ('netsh wlan show hostednetwork') do if "!oldssid!"=="" set "oldssid=%%j" |
| echo 原SSID:!oldssid! |
| set /p newssid=请输入新SSID: |
| if "!newssid!"=="" set "newssid=softAP" |
| netsh wlan set hostednetwork ssid=!newssid! |
| ) |
| |
| if "%mainmenu%"=="6" ( |
| echo 提示:密码至少为8位 &echo; |
| set /p password=请输入新密码: |
| netsh wlan set hostednetwork key=!password! 1>nul |
| if "!errorlevel!"=="0" (echo 已成功更改密码) else echo 输入的密码有误 |
| ) |
| |
| if "%mainmenu%"=="7" ( |
| |
| set "n=0" |
| for /f "skip=3 tokens=1* delims=:" %%i in ('netsh wlan show hostednetwork') do ( |
| set /a n+=1 |
| if !n! gtr 12 ( rem 12行之后为客户端信息 |
| set "apinfo[!n!]=%%i:%%j" &rem 客户端物理地址采用:分隔,故需要保存i |
| ) else set "apinfo[!n!]=%%j" |
| ) |
| |
| echo 无线热点信息: |
| if /i "!apinfo[1]!"=="" (echo 无线热点模式:不可用) else echo 无线热点模式:!apinfo[1]! |
| if /i "!apinfo[8]!"=="" (echo 无线热点状态:不可用) else echo 无线热点状态:!apinfo[8]! |
| if "!apinfo[1]!"==" 已启用" set "ismode=true" &set "apssid=!apinfo[2]!" |
| if "!apinfo[8]!"==" 已启动" set "isstart=true" |
| |
| if /i "!isstart!"=="true" ( |
| set "apmac=!apinfo[9]!" &set "apmac=!apmac::=-!" &rem 获取热点物理地址,并将:转换为- |
| for /f "tokens=1* delims=:" %%i in ('ipconfig /all') do ( |
| if /i "%%j"==" !apmac!" set "isap=true" &rem 已进入ap信息 |
| if /i "!isap!"=="true" ( |
| set "s=%%i" |
| if /i "!s:~0,7!"==" IPv4" ( |
| set "apip=%%j" |
| set "isap=false" &rem 已离开ap信息 |
| ) |
| ) |
| ) |
| for /f "delims=(" %%i in ("!apip!") do set "apip=%%i" &rem 分离出ip地址 |
| echo 无线热点的SSID:!apssid! |
| echo 无线热点的IP地址:!apip! |
| echo 无线热点的物理地址:!apmac! |
| echo - - - - - - &echo; |
| |
| echo 连接到无线热点上的客户端信息: |
| set "sumclient=!apinfo[12]!" |
| if !sumclient! gtr 0 ( |
| echo 客户端总数:!sumclient! |
| echo 序号 类型 验证状态 物理地址 IP地址 |
| for /l %%i in (13,1,!n!) do ( |
| for /f "tokens=1,2 delims= " %%j in ("!apinfo[%%i]!") do ( |
| set "clientmac=%%j" &set "clientmac=!clientmac::=-!" |
| set "clientstate=%%k" |
| ) |
| for /f "tokens=1,3 delims= " %%i in ('arp -a -n !apip! ^| find /i "!clientmac!"') do ( |
| set "clientip=%%i" |
| set "ipclass=%%j" |
| ) |
| set /a s+=1 |
| echo !s! !ipclass! !clientstate! !clientmac! !clientip! |
| ) |
| ) else echo 当前没有客户端连接到无线热点上 |
| ) else echo 未启动无线热点,SSID、IP及物理地址不可用 &echo 未启动无线热点,客户端信息不可用 |
| echo - - - - - - |
| ) |
| |
| if "%mainmenu%"=="8" ( |
| set "apmode=不支持" |
| echo 驱动程序信息: |
| for /f "delims=" %%i in ('netsh wlan show drivers') do ( |
| echo %%i |
| if /i "%%i"==" 支持的承载网络 : 是" set "apmode=支持" |
| ) |
| echo; &echo - - - - - - |
| echo 检测结果: !apmode! |
| echo 您当前的驱动程序!apmode!无线热点模式 |
| ) |
| |
| if "%mainmenu%"=="9" ( |
| echo 提示:若相关信息过长,将在每显示一页后暂停,按空格键可继续查看下一页的信息。&echo; |
| echo 查看承载网络的属性和状态(netsh wlan show hostednetwork) …………1&echo; |
| echo 查看系统上的无线局域网接口的列表(netsh wlan show interfaces)……2&echo; |
| echo 查看系统上的无线驱动程序属性(netsh wlan show drivers) ……………3&echo; |
| echo 查看计算机上可见的无线网络列表(netsh wlan show networks)…………4&echo; |
| echo 查看无线局域网的全局设置(netsh wlan show settings)…………………5&echo; |
| echo 查看完整的无线设备和网络信息(netsh wlan show all) …………………6&echo; |
| echo 查看Windows上的完整IP配置(ipconfig /all)………………………………7&echo; |
| echo 退出回到主菜单………………0&echo; |
| set /p submenu= 请选择: |
| cls |
| if "!submenu!"=="1" netsh wlan show hostednetwork | more |
| if "!submenu!"=="2" netsh wlan show interfaces | more |
| if "!submenu!"=="3" netsh wlan show drivers | more |
| if "!submenu!"=="4" netsh wlan show networks | more |
| if "!submenu!"=="5" netsh wlan show settings | more |
| if "!submenu!"=="6" netsh wlan show all | more |
| if "!submenu!"=="7" ipconfig /all | more |
| ) |
| |
| if /i "%mainmenu%"=="h" ( |
| start http://hi.baidu.com/_deepbluetears/archive/tag/热点助手 |
| echo 如果页面没有正常打开,请访问: |
| echo http://hi.baidu.com/_deepbluetears/archive/tag/热点助手 |
| ) |
| |
| if not "%mainmenu%"=="0" ( |
| if not "!submenu!"=="0" ( rem 子菜单选项不为0,则进行暂停 |
| echo; &echo ------ 按空格键返回主菜单 ------ |
| pause >nul |
| ) |
| set "submenu=" |
| goto Begin |
| ) |
| |
| :End |
| color 07COPY |