中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请问这个带有选择项的批处理是怎么样实现的
« [1] [2] [3] »
作者:
标题: 请问这个带有选择项的批处理是怎么样实现的 上一主题 | 下一主题
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『楼 主』:  请问这个带有选择项的批处理是怎么样实现的

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 ]

2006-11-2 08:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  


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


[ Last edited by lxmxn on 2006-11-2 at 09:27 AM ]

2006-11-2 09:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 3 楼』:  



  Quote:

  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%] == [1] GOTO SERVICE1
  26. IF [%in%] == [2] GOTO SERVICE2
  27. IF [%in%] == [3] GOTO SERVICE3
  28. IF [%in%] == [4] GOTO SERVICE4
  29. IF [%in%] == [5] GOTO SERVICE5
  30. IF [%in%] == [6] GOTO SERVICE6
  31. IF [%in%] == [7] 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



2006-11-2 10:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 4 楼』:  

2000/XP下没有chioce命令,要实现楼主所述功能,可以利用set /P

2006-11-2 10:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 5 楼』:  

奇怪的是加入这个文件在WINDOWS中是可以运行了,可不管加入的是choice.exe或choice.com在dos中都不可以运行

2006-11-2 12:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  


  你把chioce.exe加到哪里去了?


2006-11-2 12:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 7 楼』:  

TO:lxmxn

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

TO:kcdsw

谢谢你写的这个批处理,但还是没有成功,不管选哪个数值,它依然执行的是第一条

2006-11-2 12:35
查看资料  发短消息 网志   编辑帖子  回复  引用回复
youxi01
高级用户




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 8 楼』:  

如果加个检测语句,然后直接来个goto :service%in%会不会简单很多呢?

2006-11-2 12:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:  


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


2006-11-2 13:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 10 楼』:  

这个就不懂了,连加在哪都不懂了

2006-11-2 13:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by lxmxn at 2006-11-2 01:08 PM:

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

系统找需要的文件都是从自身所处的文件夹里开始找起的,找不到才会到系统文件夹里找.DOS应该也不会例外吧,还有,我是想把这个批处理做到启动盘里的,就更不存在系统文件夹一说了

2006-11-2 13:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 12 楼』:  

那你的在AUTOEXEC.BAT里加入该文件的工作路径



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2006-11-2 20:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:  

AUTOEXEC.BAT、NET START我在郁闷是纯DOS下还是XP运行此批处理啊?



第一高手    第二高手

2006-11-2 21:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingyangecho
初级用户





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 14 楼』:  

choice是否在VM中用不了,发须在实机中使用?

2006-11-2 22:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 15 楼』:  

从Win2003中提取的CHOICE
http://www.cn-dos.net/forum/view ... mp;highlight=choice

VM中是什么系统?一定要搞清纯DOS批处理还是CMD(XP)下批处理,2者有本质上的区别



第一高手    第二高手

2006-11-2 22:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: