标题: [特效代码] [已解决]批处理菜单选项如何实现多选 [打印本页]
作者: qxlovexcx 时间: 2016-12-11 22:03 标题: [已解决]批处理菜单选项如何实现多选
用 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))
花了一个星期时间,没法本人太菜了
作者: czjt1234 时间: 2016-12-12 07:06
非要批处理?hta不行?
作者: hlzj88 时间: 2016-12-13 09:52
本帖最后由 hlzj88 于 2016-12-13 09:56 编辑
因你的提问,其实也是一直有这个想法,特地思考想了以下方法,应当能完成N个选项,但有瑕疵,当没有跳转选项时,不会按意图返回,会直接退出。期待高手完善。- @echo off&&setlocal enabledelayedexpansion
- :ks
- echo.
- echo a 测试位置1
- echo.
- echo b 测试位置2
- echo.
- echo c 测试无跳转位置
- echo.
- :cl
- set /p pp=请输入你欲到达的位置--^>
- findstr /ibc:":%pp%" "%~nx0"&&goto %pp% || goto cl
- rem 估计每一个标签都要长度相等且用几个字母来表达,同时,输入要严格准确,否则,会跳,但又找不到标签。
- :a
- echo.
- echo 到达a
- echo.
- goto ks
-
- :b
- echo.
- echo 到达b
- echo.
- goto ks
复制代码
上面 当findstr 没有结果时,会直接退出,怎么解决呢
作者: hlzj88 时间: 2016-12-13 10:06
上面答不对题。
作者: qxlovexcx 时间: 2016-12-14 10:49
过几天我来搞,我的吧事情做完,就可以吧作品发布了,在回头来解决这2个问题,主要是菜单多选的问题,
开始我也没注意这个问题,吧作品发布后,有人提出这样的菜单,我简单做了个不理想,发现有点难度,就暂停了,等作品完成了,就有时间来做这个了
作者: qxlovexcx 时间: 2016-12-16 09:57
鉴于用 set /p ID=
if "%id%"=="1"
方式 最大的缺点就是输入英文的双引号“ " ”或是拖拽带空格的文件到窗口都会退出,
我暂时没想到解决方法 有没人指点,先放弃了
现在我用 choice 来做菜单 ,就差一个问题没解决,
我的菜单是选择后会立刻显示出来。
1 多选择菜单{ %jia% }
选择后会变成 1 多选择菜单{ 1 }
要是取消选择,不知道怎么搞了,要是以读取文本的方式,那读取的是{ %jia% }而不是{ 1 }或是{ },暂时没想出来
有人可以指点下吗
作者: pcl_test 时间: 2016-12-16 16:01
回复 6# qxlovexcx
1、- @echo off
- echo;%1
- echo;"%1"
- echo;%~1
- echo;"%~1"
- pause
复制代码
2、- @echo off
- echo;1、a 2、b 3、c 4、d
- set/p c=输入数字序号,多选在数字间以英文逗号分隔[如2,4,1]:
- for %%a in (%c%) do call :%%a
- pause&exit
- :1
- echo;a
- goto :eof
- :2
- echo;b
- goto :eof
- :3
- echo;c
- goto :eof
- :4
- echo;d
- goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |