找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26223|回复: 8

[特效代码] 批处理命令if else为何出错?

[复制链接]
发表于 2013-4-11 13:50:12 | 显示全部楼层 |阅读模式
  1. netsh wlan show drivers |find "是否承载网路"|find "是"
  2. if "%errorlevel%"=="0" (goto setup) else(goto error)
  3. :setup
  4. set /P name= 输入你想更改的用户名:
  5. set /P key= 输入你想更改的密码:
  6. netsh wlan  set hostednetwork mode=allow ssid="%name%" key="%key%"
  7. netsh wlan start hosted
  8. echo 开启成功,按任意键退出...
  9. pause
  10. goto end
  11. :error

  12. echo "驱动不支持开启wifi,请更新驱动”
  13. goto end
复制代码
此段代码错误在哪呀,运行的时候是直接退出,刚接触dos感觉跟bash有很多不一样啊,不懂
刚开始写的是
  1. if "%errorlevel%"=="0" (
  2. set /P name= 输入你想更改的用户名:
  3. set /P key= 输入你想更改的密码:
  4. netsh wlan  set hostednetwork mode=allow ssid="%name%" key="%key%"
  5. netsh wlan start hosted
  6. echo 开启成功,按任意键退出...
  7. pause
  8. goto end ) else (
  9. echo "驱动不支持开启wifi,请更新驱动”
  10. goto end )
复制代码
这个也是运行不正确,不知道哪里理解错了
发表于 2013-4-11 16:48:25 | 显示全部楼层
你接触的是cmd下的批处理,不叫dos
if语法:
  1. if "%errorlevel%"=="0" (
  2.    goto setup
  3. ) else (
  4.    goto error
  5. )
复制代码
发表于 2013-4-11 18:39:17 | 显示全部楼层
本帖最后由 CrLf 于 2013-4-11 18:40 编辑
  1. if xxx (
  2. 代码....
  3. set /P name= 输入你想更改的用户名:
  4. set /P key= 输入你想更改的密码:
  5. call netsh wlan  set hostednetwork mode=allow ssid="%%name%%" key="%%key%%"
  6. 代码....
  7. )
复制代码
发表于 2013-4-11 19:25:49 | 显示全部楼层
目测,你的else后少了个空格应该是else (
发表于 2013-4-11 20:04:27 | 显示全部楼层
  1. @ECHO OFF & title Win7虚拟无线路由 & cd /d %~dp0
  2. if /i not "%1"=="" goto %1
  3.   echo Loading...
  4.   netsh wlan show drivers>nul
  5.   if errorlevel 1 cls & echo 没有无线网卡设备或无线没有开启!
  6.   FOR /F "tokens=3 delims= " %%i in ('netsh wlan show drivers^|find "支持的承载网络"') do (
  7.           cls & echo 支持的承载网络:%%i
  8.           if %%i==是 netsh wlan show drivers|find /i "vwifibus.sys" >nul && goto main || echo 未找到vwifibus.sys文件,请重新安装无线网卡驱动!
  9. )
  10. pause >nul & exit
  11. :main
  12. cls & echo 正在更新状态...
  13.   FOR /F "tokens=3 delims= " %%i in ('netsh wlan show hostednetwork^|find "状态"') do (cls & echo 虚拟无线路由当前状态为:%%i & set zt=%%i)
  14. echo.
  15. echo         1.启用虚拟无线路由
  16. echo.
  17. echo         2.关闭虚拟无线路由
  18. echo.
  19. echo         3.设置开机自动启用虚拟无线路由
  20. echo.
  21. echo         4.取消开机自动启用虚拟无线路由
  22. echo,
  23. echo         5.修改无线名称及密码
  24. echo.
  25. set choice=
  26. set /p choice=输入编号,按下回车键=
  27. if "%choice%"=="1" goto auto
  28. if "%choice%"=="2" if not "%zt%"=="不可用" cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "off" >nul & netsh wlan set hostednetwork mode=disallow >nul & goto show
  29. 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 设置失败!
  30. if "%choice%"=="4" reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v autowifiap /f >nul 2>nul && echo 取消成功! || echo 取消失败或还没有设置开机启用。
  31. if "%choice%"=="5" notepad wifi.ini & echo 修改完成后需重启虚拟无线路由才能生效!
  32. if "%choice%"=="" cls & goto main
  33. pause
  34. cls & goto main
  35. :auto
  36. FOR /F "eol=; tokens=2 delims=:" %%i in ('type wifi.ini^|find "无线名称"') do (set "SSIDvalue=%%i")
  37. FOR /F "eol=; tokens=2 delims=:" %%i in ('type wifi.ini^|find "无线密码"') do (set "PasswordValue=%%i")
  38. echo 无线名称=%SSIDvalue% 无线密码=%PasswordValue%
  39. if /i not "%1"=="auto" pause
  40. cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "off" >nul & netsh wlan set hostednetwork mode=disallow >nul
  41. sc config MpsSvc start=demand >nul 2>nul
  42. net start MpsSvc >nul 2>nul
  43. netsh wlan set hostednetwork mode=allow "ssid=%SSIDvalue%" "key=%PasswordValue%" keyUsage=persistent >nul
  44. netsh wlan start hostednetwork >nul
  45. if errorlevel 1 echo 请尝试更新无线网卡驱动或重新安装系统!& netsh wlan set hostednetwork mode=disallow >nul & pause>nul & exit
  46. if exist ics.vbs (cscript //nologo ics.vbs "无线网络连接 2" "本地连接" "on" >nul) else (echo 未找到ics.vbs文件,可能需要手动设置共享才能访问网络!)
  47. :show
  48. if /i "%1"=="auto" exit
  49. cls & netsh wlan show hostednetwork
  50. pause & goto main
复制代码
 楼主| 发表于 2013-4-11 21:36:02 | 显示全部楼层
回复 2# apang
原来我连名字都没搞清楚....真该去看点基础的了,多谢多谢
 楼主| 发表于 2013-4-11 21:37:14 | 显示全部楼层
回复 5# 522235677
这个给力啊,好,我多看看,学习了,多谢了
 楼主| 发表于 2013-4-11 21:38:09 | 显示全部楼层
回复 4# xxpinqz
先回复,然后再去测试,嘿,多谢
 楼主| 发表于 2013-4-11 21:39:54 | 显示全部楼层
回复 3# CrLf
多谢,多谢,很多东西都不懂,唉,自己试了半天也不知道哪错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:08 , Processed in 0.019897 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表