检查 BAT 文件中的特定字母
Checking for a specific letter in a BAT file
我只是想找到让 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
最后两行代码的正确语法是什么?
正如另一位用户所建议的,请查看 CHOICE
https://ss64.com/nt/choice.html
直接回答您的问题:
您需要使用 NOT
运算符
IF /I NOT "%input%"=="C" goto error
或
IF /I "%input%" NEQ "C" goto error
我认为您需要做的只是用错误处理替换最后两行,然后 goto end
这样,如果您到达这一点,那就是错误。在 :compile
和 :run
标签前添加 goto end
以防止错误执行。
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
供参考:
我只是想找到让 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
最后两行代码的正确语法是什么?
正如另一位用户所建议的,请查看 CHOICE
https://ss64.com/nt/choice.html
直接回答您的问题:
您需要使用 NOT
运算符
IF /I NOT "%input%"=="C" goto error
或
IF /I "%input%" NEQ "C" goto error
我认为您需要做的只是用错误处理替换最后两行,然后 goto end
这样,如果您到达这一点,那就是错误。在 :compile
和 :run
标签前添加 goto end
以防止错误执行。
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
供参考: