标题: [特效代码] 批处理命令if else为何出错? [打印本页]
作者: backtrack0741 时间: 2013-4-11 13:50 标题: 批处理命令if else为何出错?
- netsh wlan show drivers |find "是否承载网路"|find "是"
- if "%errorlevel%"=="0" (goto setup) else(goto error)
- :setup
- set /P name= 输入你想更改的用户名:
- set /P key= 输入你想更改的密码:
- netsh wlan set hostednetwork mode=allow ssid="%name%" key="%key%"
- netsh wlan start hosted
- echo 开启成功,按任意键退出...
- pause
- goto end
- :error
-
- echo "驱动不支持开启wifi,请更新驱动”
- goto end
复制代码
此段代码错误在哪呀,运行的时候是直接退出,刚接触dos感觉跟bash有很多不一样啊,不懂
刚开始写的是- if "%errorlevel%"=="0" (
- set /P name= 输入你想更改的用户名:
- set /P key= 输入你想更改的密码:
- netsh wlan set hostednetwork mode=allow ssid="%name%" key="%key%"
- netsh wlan start hosted
- echo 开启成功,按任意键退出...
- pause
- goto end ) else (
- echo "驱动不支持开启wifi,请更新驱动”
- goto end )
复制代码
这个也是运行不正确,不知道哪里理解错了
作者: apang 时间: 2013-4-11 16:48
你接触的是cmd下的批处理,不叫dos
if语法:- if "%errorlevel%"=="0" (
- goto setup
- ) else (
- goto error
- )
复制代码
作者: CrLf 时间: 2013-4-11 18:39
本帖最后由 CrLf 于 2013-4-11 18:40 编辑
- if xxx (
- 代码....
- set /P name= 输入你想更改的用户名:
- set /P key= 输入你想更改的密码:
- call netsh wlan set hostednetwork mode=allow ssid="%%name%%" key="%%key%%"
- 代码....
- )
复制代码
作者: xxpinqz 时间: 2013-4-11 19:25
目测,你的else后少了个空格应该是else (
作者: 522235677 时间: 2013-4-11 20:04
- @ECHO OFF & title Win7虚拟无线路由 & cd /d %~dp0
- if /i not "%1"=="" goto %1
- echo Loading...
- netsh wlan show drivers>nul
- if errorlevel 1 cls & echo 没有无线网卡设备或无线没有开启!
- FOR /F "tokens=3 delims= " %%i in ('netsh wlan show drivers^|find "支持的承载网络"') do (
- cls & echo 支持的承载网络:%%i
- if %%i==是 netsh wlan show drivers|find /i "vwifibus.sys" >nul && goto main || echo 未找到vwifibus.sys文件,请重新安装无线网卡驱动!
- )
- pause >nul & exit
- :main
- cls & echo 正在更新状态...
- FOR /F "tokens=3 delims= " %%i in ('netsh wlan show hostednetwork^|find "状态"') do (cls & echo 虚拟无线路由当前状态为:%%i & set zt=%%i)
- echo.
- echo 1.启用虚拟无线路由
- echo.
- echo 2.关闭虚拟无线路由
- echo.
- echo 3.设置开机自动启用虚拟无线路由
- echo.
- echo 4.取消开机自动启用虚拟无线路由
- echo,
- echo 5.修改无线名称及密码
- echo.
- set choice=
- set /p choice=输入编号,按下回车键=
- if "%choice%"=="1" goto auto
- if "%choice%"=="2" if not "%zt%"=="不可用" cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "off" >nul & netsh wlan set hostednetwork mode=disallow >nul & goto show
- if "%choice%"=="3" reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v autowifiap /d "mshta vbscript:createobject(\"wscript.shell\").run(\"%~s0 auto\",0)(window.close)" /f >nul 2>nul && echo 设置成功!注:该批处理不能移动、重命名及删除,否则将无法开机自动运行。 || echo 设置失败!
- if "%choice%"=="4" reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v autowifiap /f >nul 2>nul && echo 取消成功! || echo 取消失败或还没有设置开机启用。
- if "%choice%"=="5" notepad wifi.ini & echo 修改完成后需重启虚拟无线路由才能生效!
- if "%choice%"=="" cls & goto main
- pause
- cls & goto main
- :auto
- FOR /F "eol=; tokens=2 delims=:" %%i in ('type wifi.ini^|find "无线名称"') do (set "SSIDvalue=%%i")
- FOR /F "eol=; tokens=2 delims=:" %%i in ('type wifi.ini^|find "无线密码"') do (set "PasswordValue=%%i")
- echo 无线名称=%SSIDvalue% 无线密码=%PasswordValue%
- if /i not "%1"=="auto" pause
- cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "off" >nul & netsh wlan set hostednetwork mode=disallow >nul
- sc config MpsSvc start=demand >nul 2>nul
- net start MpsSvc >nul 2>nul
- netsh wlan set hostednetwork mode=allow "ssid=%SSIDvalue%" "key=%PasswordValue%" keyUsage=persistent >nul
- netsh wlan start hostednetwork >nul
- if errorlevel 1 echo 请尝试更新无线网卡驱动或重新安装系统!& netsh wlan set hostednetwork mode=disallow >nul & pause>nul & exit
- if exist ics.vbs (cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "on" >nul) else (echo 未找到ics.vbs文件,可能需要手动设置共享才能访问网络!)
- :show
- if /i "%1"=="auto" exit
- cls & netsh wlan show hostednetwork
- pause & goto main
复制代码
作者: backtrack0741 时间: 2013-4-11 21:36
回复 2# apang
原来我连名字都没搞清楚....真该去看点基础的了,多谢多谢
作者: backtrack0741 时间: 2013-4-11 21:37
回复 5# 522235677
这个给力啊,好,我多看看,学习了,多谢了
作者: backtrack0741 时间: 2013-4-11 21:38
回复 4# xxpinqz
先回复,然后再去测试,嘿,多谢
作者: backtrack0741 时间: 2013-4-11 21:39
回复 3# CrLf
多谢,多谢,很多东西都不懂,唉,自己试了半天也不知道哪错了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |