【问题标题】:Batch If x or y statement problemsBatch If x 或 y 语句问题
【发布时间】:2019-06-02 16:49:24
【问题描述】:
if %input%==0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || "A" || "B" || "C" || "D" || "E" || "F" goto Text

我尝试使用这一行,如果 %input% 为 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E 或 F,它将转到:Text 但它只是关闭提示符(后面什么都没有)。我怎样才能让它做我想做的事?

【问题讨论】:

  • | 是一个保留字符,表示如果之前失败则运行下一个命令。不要使用保留字符。
  • 帮助文件中的哪个位置显示了 IF 命令的语法?
  • 我会更感兴趣的是找到任何可以让你做到这一点的语言。
  • 简单:set "options=0123456789ABCDEF"if "!options:%input%=!" neq "%options%" goto Text。更简单:使用choice /C 0123456789ABCDEF 获取输入...

标签: batch-file


【解决方案1】:

如下所述,您的帖子 cmets 或 this post - 双管; || 仅当前一个命令的错误级别不为 0(或者换句话说,失败)时才执行以下命令。

修复此帖子的一种简单方法是使用for loop 遍历多个变量,并在IF 语句中将它们与您的字符串进行比较。如果匹配,它将使用您帖子中列出的GOTO 命令。如果没有找到匹配项,它将结束循环。请记住,ELSE 命令可用于重定向不匹配的结果。 if "%input%"==%%A (goto Text) ELSE (goto NoMatchesFound).

for %%A in ("1" "2" "3" "4" "5" "6" "7" "8" "9" "A" "B" "C" "D" "E" "F") do (if "%input%"==%%A (goto Text))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-15
    • 2013-03-13
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 2022-12-07
    • 2015-09-16
    • 2021-05-15
    相关资源
    最近更新 更多