中国DOS联盟论坛

中国DOS联盟

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

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

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





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

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 楼』:   使用 LLM 解释/回答一下


  主要是利用了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 楼』:   使用 LLM 解释/回答一下



  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


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




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

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


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





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

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


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




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下


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


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





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

TO:lxmxn

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

TO:kcdsw

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


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




积分 846
发帖 247
注册 2006-10-27
来自 湖南==》广东
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

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


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




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下


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


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





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

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


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





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

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

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



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


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

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

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




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

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

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




第一高手 第二高手

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





积分 97
发帖 40
注册 2006-11-1
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

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


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

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

从Win2003中提取的CHOICE
http://www.cn-dos.net/forum/viewthread.php?tid=21689&fpage=1&highlight=choice

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




第一高手 第二高手

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

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: