中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-25 07:07
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » 请问这个带有选择项的批处理是怎么样实现的
可打印版本  4,197 / 35
第1楼 qingyangecho 发表于 2006-11-02 08:50
初级用户 发帖 40 积分 97
请问这个带有选择项的批处理是怎么样实现的
CLS
COLOR 0A
GOTO MENU

:MENU
ECHO.
ECHO. =-=-=-=-=请选择要启动的服务项目=-=-=-=-=
ECHO.
ECHO. 1 启动-本机网络服务
ECHO.
ECHO. 2 启动-USB和COM服务
ECHO.
ECHO. 3 启动-DHCP和NAT服务
ECHO.
ECHO. 4 启动-用户权限服务
ECHO.
ECHO. 5 启动-启动全部服务
ECHO.
ECHO. 6 安装虚拟网卡1和8
ECHO.
ECHO. 7 退 出
ECHO.
ECHO.
ECHO.
CHOICE /C 1234567 /N /M 请输入选择项目的序号:
IF ERRORLEVEL 1 IF NOT ERRORLEVEL 2 GOTO SERVICE1
IF ERRORLEVEL 2 IF NOT ERRORLEVEL 3 GOTO SERVICE2
IF ERRORLEVEL 3 IF NOT ERRORLEVEL 4 GOTO SERVICE3
IF ERRORLEVEL 4 IF NOT ERRORLEVEL 5 GOTO SERVICE4
IF ERRORLEVEL 5 IF NOT ERRORLEVEL 6 GOTO SERVICE5
IF ERRORLEVEL 6 IF NOT ERRORLEVEL 7 GOTO SERVICE6
IF ERRORLEVEL 7 IF NOT ERRORLEVEL 8 GOTO END
PAUSE

:SERVICE1
NET START VMNETUSERIF
NET START VMNETBRIDGE
GOTO MENU

:SERVICE2
NET START HCMON
NET START VMPARPORT
GOTO MENU

:SERVICE3
SC CREATE VMnetDHCP BINPATH= "%WINDIR%\SYSTEM32\VMNETDHCP.EXE" DISPLAYNAME= "VMware DHCP Service" DEPEND= VMnetuserif
SC CREATE "VMware NAT Service" BINPATH= "%WINDIR%\SYSTEM32\VMNAT.EXE" DISPLAYNAME= "VMware NAT Service" DEPEND= VMnetuserif
NET START VMnetDHCP
NET START "VMware NAT Service"
GOTO MENU

:SERVICE4
SC CREATE VMAuthdService BINPATH= "%CD%\VMWARE-AUTHD.EXE" DISPLAYNAME= "VMware Authorization Service" DEPEND= vmx86
NET START VMAUTHDSERVICE
GOTO MENU

:SERVICE5
NET START VMNETUSERIF
NET START VMNETBRIDGE
SC CREATE VMnetDHCP BINPATH= "%WINDIR%\SYSTEM32\VMNETDHCP.EXE" DISPLAYNAME= "VMware DHCP Service" DEPEND= VMnetuserif
SC CREATE "VMware NAT Service" BINPATH= "%WINDIR%\SYSTEM32\VMNAT.EXE" DISPLAYNAME= "VMware NAT Service" DEPEND= VMnetuserif
NET START VMnetDHCP
NET START "VMware NAT Service"
NET START HCMON
NET START VMPARPORT
SC CREATE VMAuthdService BINPATH= "%CD%\VMWARE-AUTHD.EXE" DISPLAYNAME= "VMware Authorization Service" DEPEND= vmx86
NET START VMAUTHDSERVICE
GOTO MENU

:SERVICE6
DEVCON -R INSTALL %SYSTEMROOT%\INF\VMNETADAPTER.INF *VMnetAdapter1
DEVCON -R INSTALL %SYSTEMROOT%\INF\VMNETADAPTER.INF *VMnetAdapter8
GOTO MENU

:END

[ Last edited by namejm on 2006-11-2 at 09:37 AM ]
第2楼 lxmxn 发表于 2006-11-02 09:25
版主 发帖 4,938 积分 11,386

  主要是利用了choice命令的特性来实现的,不过xp系统好象没有自带这个命令。


[ Last edited by lxmxn on 2006-11-2 at 09:27 AM ]
第3楼 kcdsw 发表于 2006-11-02 10:49
中级用户 发帖 179 积分 404


  1. CLS
  2. COLOR 0A
  3. GOTO MENU

  4. :MENU
  5. ECHO.
  6. ECHO. =-=-=-=-=请选择要启动的服务项目=-=-=-=-=
  7. ECHO.
  8. ECHO. 1 启动-本机网络服务
  9. ECHO.
  10. ECHO. 2 启动-USB和COM服务
  11. ECHO.
  12. ECHO. 3 启动-DHCP和NAT服务
  13. ECHO.
  14. ECHO. 4 启动-用户权限服务
  15. ECHO.
  16. ECHO. 5 启动-启动全部服务
  17. ECHO.
  18. ECHO. 6 安装虚拟网卡1和8
  19. ECHO.
  20. ECHO. 7 退 出
  21. ECHO.
  22. ECHO.
  23. ECHO.
  24. set /p in = 请输入选择项目的序号:
  25. IF [%in%] == GOTO SERVICE1
  26. IF [%in%] == GOTO SERVICE2
  27. IF [%in%] == GOTO SERVICE3
  28. IF [%in%] == GOTO SERVICE4
  29. IF [%in%] == GOTO SERVICE5
  30. IF [%in%] == GOTO SERVICE6
  31. IF [%in%] == GOTO END
  32. PAUSE >nul

  33. :SERVICE1
  34. NET START VMNETUSERIF
  35. NET START VMNETBRIDGE
  36. GOTO MENU

  37. :SERVICE2
  38. NET START HCMON
  39. NET START VMPARPORT
  40. GOTO MENU

  41. :SERVICE3
  42. SC CREATE VMnetDHCP BINPATH= "%WINDIR%\SYSTEM32\VMNETDHCP.EXE" DISPLAYNAME= "VMware DHCP Service" DEPEND= VMnetuserif
  43. SC CREATE "VMware NAT Service" BINPATH= "%WINDIR%\SYSTEM32\VMNAT.EXE" DISPLAYNAME= "VMware NAT Service" DEPEND= VMnetuserif
  44. NET START VMnetDHCP
  45. NET START "VMware NAT Service"
  46. GOTO MENU

  47. :SERVICE4
  48. SC CREATE VMAuthdService BINPATH= "%CD%\VMWARE-AUTHD.EXE" DISPLAYNAME= "VMware Authorization Service" DEPEND= vmx86
  49. NET START VMAUTHDSERVICE
  50. GOTO MENU

  51. :SERVICE5
  52. NET START VMNETUSERIF
  53. NET START VMNETBRIDGE
  54. SC CREATE VMnetDHCP BINPATH= "%WINDIR%\SYSTEM32\VMNETDHCP.EXE" DISPLAYNAME= "VMware DHCP Service" DEPEND= VMnetuserif
  55. SC CREATE "VMware NAT Service" BINPATH= "%WINDIR%\SYSTEM32\VMNAT.EXE" DISPLAYNAME= "VMware NAT Service" DEPEND= VMnetuserif
  56. NET START VMnetDHCP
  57. NET START "VMware NAT Service"
  58. NET START HCMON
  59. NET START VMPARPORT
  60. SC CREATE VMAuthdService BINPATH= "%CD%\VMWARE-AUTHD.EXE" DISPLAYNAME= "VMware Authorization Service" DEPEND= vmx86
  61. NET START VMAUTHDSERVICE
  62. GOTO MENU

  63. :SERVICE6
  64. DEVCON -R INSTALL %SYSTEMROOT%\INF\VMNETADAPTER.INF *VMnetAdapter1
  65. DEVCON -R INSTALL %SYSTEMROOT%\INF\VMNETADAPTER.INF *VMnetAdapter8
  66. GOTO MENU

  67. :END

  68. 代码未测试
kcdsw 发表于: 2006-11-01 22:53
第4楼 youxi01 发表于 2006-11-02 10:51
高级用户 发帖 247 积分 846 来自 湖南==》广东
2000/XP下没有chioce命令,要实现楼主所述功能,可以利用set /P
第5楼 qingyangecho 发表于 2006-11-02 12:03
初级用户 发帖 40 积分 97
奇怪的是加入这个文件在WINDOWS中是可以运行了,可不管加入的是choice.exe或choice.com在dos中都不可以运行
第6楼 lxmxn 发表于 2006-11-02 12:14
版主 发帖 4,938 积分 11,386

  你把chioce.exe加到哪里去了?
第7楼 qingyangecho 发表于 2006-11-02 12:35
初级用户 发帖 40 积分 97
TO:lxmxn

加到98启动盘生成的虚拟内存盘里,和批处理文件同在这个盘的根目录下

TO:kcdsw

谢谢你写的这个批处理,但还是没有成功,不管选哪个数值,它依然执行的是第一条
第8楼 youxi01 发表于 2006-11-02 12:56
高级用户 发帖 247 积分 846 来自 湖南==》广东
如果加个检测语句,然后直接来个goto :service%in%会不会简单很多呢?
第9楼 lxmxn 发表于 2006-11-02 13:08
版主 发帖 4,938 积分 11,386

  应该加到系统的文件夹里面吧?
第10楼 qingyangecho 发表于 2006-11-02 13:13
初级用户 发帖 40 积分 97
这个就不懂了,连加在哪都不懂了
第11楼 qingyangecho 发表于 2006-11-02 13:16
初级用户 发帖 40 积分 97
Originally posted by lxmxn at 2006-11-2 01:08 PM:

  应该加到系统的文件夹里面吧?



系统找需要的文件都是从自身所处的文件夹里开始找起的,找不到才会到系统文件夹里找.DOS应该也不会例外吧,还有,我是想把这个批处理做到启动盘里的,就更不存在系统文件夹一说了
第12楼 不得不爱 发表于 2006-11-02 20:38
超级版主 发帖 2,044 积分 5,310 来自 四川南充
那你的在AUTOEXEC.BAT里加入该文件的工作路径
第13楼 fastslz 发表于 2006-11-02 21:24
铂金会员 发帖 2,315 积分 5,493 来自 上海
AUTOEXEC.BAT、NET START我在郁闷是纯DOS下还是XP运行此批处理啊?
第14楼 qingyangecho 发表于 2006-11-02 22:04
初级用户 发帖 40 积分 97
choice是否在VM中用不了,发须在实机中使用?
第15楼 fastslz 发表于 2006-11-02 22:13
铂金会员 发帖 2,315 积分 5,493 来自 上海
从Win2003中提取的CHOICE
http://www.cn-dos.net/forum/viewthread.php?tid=21689&fpage=1&highlight=choice

VM中是什么系统?一定要搞清纯DOS批处理还是CMD(XP)下批处理,2者有本质上的区别
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023