Board logo

标题: [文本处理] 批处理choice命令无法设置字母启动? [打印本页]

作者: 滴血雄鹰    时间: 2019-7-26 09:41     标题: 批处理choice命令无法设置字母启动?

本帖最后由 滴血雄鹰 于 2019-7-26 19:31 编辑

只能0~9启动。无法设置字母启动?大小写均无效。
由于程序多超过0~9怎么办,有没有什么办法解决?而且程序只取第1位,10、11等也没有办法用,只返回第1位数。

@echo off

echo;   [1]  1
echo;   [2]  2
echo;   [3]  3
echo;   [4]  4
echo;   [5]  5
echo;   [6]  6
echo;   [7]  7
echo;   [8]  8
echo;   [9]  9
echo;   [A]  A
echo;   [B]  B
echo;   [C]  C
echo;   [D]  D
echo;   [E]  E
echo;   [F]  F
echo;   [0]  退出

echo.
echo 请输入序号:
echo.
choice /N /c 1234567890ABCDEF
if %errorlevel%==1 1.bat
if %errorlevel%==2 2.bat
if %errorlevel%==3 3.bat
if %errorlevel%==4 4.bat
if %errorlevel%==5 5.bat
if %errorlevel%==6 6.bat
if %errorlevel%==7 7.bat
if %errorlevel%==8 8.bat
if %errorlevel%==9 9.bat
if %errorlevel%==A A.bat
if %errorlevel%==B B.bat
if %errorlevel%==C C.bat
if %errorlevel%==D D.bat
if %errorlevel%==E E.bat
if %errorlevel%==F F.bat

if %errorlevel%==0 start exit[/code]
作者: Batcher    时间: 2019-7-26 10:03

errorlevel没有A~F这样的值
作者: WHY    时间: 2019-7-26 10:44

本帖最后由 WHY 于 2019-7-27 13:28 编辑
  1. choice /c 1234567890ABCDEF
  2. if %errorlevel%==1 (
  3.     1.bat
  4. ) else if %errorlevel%==2 (
  5.     2.bat
  6. ) else if %errorlevel%==9 (
  7.     9.bat
  8. ) else if %errorlevel%==10 (
  9.     exit
  10. ) else if %errorlevel%==11 (
  11.     A.bat
  12. )
复制代码

作者: 滴血雄鹰    时间: 2019-7-26 19:28

回复 3# WHY

10、11等2位数不行,程序只取第一位的数字!
作者: 滴血雄鹰    时间: 2019-7-26 19:29

回复 2# Batcher

超过0~9怎么办,有没有什么办法解决?
作者: xczxczxcz    时间: 2019-7-26 20:19

输入: 1 2 3 4 5 6 7 8 9 0 A B C D E F
作者: WHY    时间: 2019-7-27 13:18

回复 4# 滴血雄鹰


    choice /N /c 1234567890ABCDEF
你把这个 /N 去掉,它会出现提示:[1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F]?
你只能输入提示里面的括弧中的值,明白不?
10、11、12 是 choice 命令执行后的返回值(errorLevel值),与输入值不相干。
作者: 滴血雄鹰    时间: 2019-7-29 16:54

回复 7# WHY


没有意义,   errorLevel不支持A,B,C,D,E,F,choice 只支持0~9,只能用set /p 了。
作者: Batcher    时间: 2019-7-29 20:14

回复 5# 滴血雄鹰


    3楼代码试过了吗?把测试结果发出来看看




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2