[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] [已解决]批处理菜单选项如何实现多选

用 set /p ID=
if "%id%"=="1"

方式 最大的缺点就是输入英文的双引号“ " ”或是拖拽带空格的文件到窗口都会退出,
解决方法
if [^%you%]==[^"]  其实就是利用转译符

问题2 菜单多选
解决方法   就是if %jia1%==×这个地方变量没搞定,要不就只要一个菜单选项,就可以随便添加,不用加命令了,累了不搞了
choice /c 123 /cs /n /m "请输入选择项目的序号注意大小写:"
if errorlevel EQU 1 (if %jia1%==× (set jia1=√&goto MENU) else (set jia1=×&goto MENU))

花了一个星期时间,没法本人太菜了
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

非要批处理?hta不行?

QQ 20147578

TOP

本帖最后由 hlzj88 于 2016-12-13 09:56 编辑

因你的提问,其实也是一直有这个想法,特地思考想了以下方法,应当能完成N个选项,但有瑕疵,当没有跳转选项时,不会按意图返回,会直接退出。期待高手完善。
  1. @echo off&&setlocal enabledelayedexpansion
  2. :ks
  3. echo.
  4. echo   a 测试位置1
  5. echo.
  6. echo   b 测试位置2
  7. echo.
  8. echo   c 测试无跳转位置
  9. echo.
  10. :cl
  11. set /p pp=请输入你欲到达的位置--^>
  12. findstr /ibc:":%pp%" "%~nx0"&&goto %pp% || goto cl
  13. rem 估计每一个标签都要长度相等且用几个字母来表达,同时,输入要严格准确,否则,会跳,但又找不到标签。
  14. :a
  15. echo.
  16. echo 到达a
  17. echo.
  18. goto ks
  19. :b
  20. echo.
  21. echo 到达b
  22. echo.
  23. goto ks
复制代码
上面 当findstr 没有结果时,会直接退出,怎么解决呢
目的,学习批处理

TOP

上面答不对题。
目的,学习批处理

TOP

过几天我来搞,我的吧事情做完,就可以吧作品发布了,在回头来解决这2个问题,主要是菜单多选的问题,

开始我也没注意这个问题,吧作品发布后,有人提出这样的菜单,我简单做了个不理想,发现有点难度,就暂停了,等作品完成了,就有时间来做这个了

TOP

鉴于用 set /p ID=
if "%id%"=="1"
方式 最大的缺点就是输入英文的双引号“ " ”或是拖拽带空格的文件到窗口都会退出,
我暂时没想到解决方法 有没人指点,先放弃了

现在我用 choice 来做菜单 ,就差一个问题没解决,

我的菜单是选择后会立刻显示出来。
1 多选择菜单{ %jia% }
选择后会变成  1 多选择菜单{ 1 }
要是取消选择,不知道怎么搞了,要是以读取文本的方式,那读取的是{ %jia% }而不是{ 1 }或是{   },暂时没想出来

有人可以指点下吗

TOP

回复 6# qxlovexcx
1、
  1. @echo off
  2. echo;%1
  3. echo;"%1"
  4. echo;%~1
  5. echo;"%~1"
  6. pause
复制代码
2、
  1. @echo off
  2. echo;1、a   2、b   3、c   4、d
  3. set/p c=输入数字序号,多选在数字间以英文逗号分隔[如2,4,1]:
  4. for %%a in (%c%) do call :%%a
  5. pause&exit
  6. :1
  7. echo;a
  8. goto :eof
  9. :2
  10. echo;b
  11. goto :eof
  12. :3
  13. echo;c
  14. goto :eof
  15. :4
  16. echo;d
  17. goto :eof
复制代码

TOP

返回列表