首页 > 解决方案 > 检查 BAT 文件中的特定字母

问题描述

我只是想找到正确的语法,让 BAT 文件检查特定字母,如果该字母不是有效选择,则出现错误。我的前三行代码有效,但是检查输入的字母是否不是 C 或 R 的语句只会使 BAT 文件退出,而不是出现我的错误。

IF /I "%input%"=="C" goto compile
IF /I "%input%"=="R" goto run
IF /I "%input%"=="" goto error
IF /I "%input%"!="C" goto error
IF /I "%input%"!="R" goto error

请问最后两行代码的正确语法是什么?

标签: windowsif-statementbatch-filecmd

解决方案


正如另一位用户建议的那样,请查看CHOICE https://ss64.com/nt/choice.html

要回答您的直接问题:

你需要使用NOT运营商

IF /I NOT "%input%"=="C" goto error

或者

IF /I "%input%" NEQ "C" goto error

我认为你需要做的就是简单地用你的错误处理替换你的最后两行,然后goto end 如果你到了这一点,那就是一个错误。goto end在您的:compile和标签之前添加一个:run以防止错误执行。

IF /I "%input%"=="C" goto compile
IF /I "%input%"=="R" goto run
:error
//handle your error...
goto end
:compile
//handle compile
goto end
:run
//handle run
:end
//handle end

以供参考:

https://ss64.com/nt/if.html


推荐阅读