gpt4 book ai didi

batch-file - 批处理 if 语句不起作用

转载 作者:行者123 更新时间:2023-12-04 02:06:19 25 4
gpt4 key购买 nike

以下代码无效。无论我输入什么,都会返回一个错误,然后返回到 Retry

@echo off

:maths
set /p Mathsa="first number? "
echo your first number is %Mathsa%

:retry

set /p Mathso="operator?(+-*/) "
if "%Mathso%" ==* GOTO run
if "%Mathso%" ==/ GOTO run
if "%Mathso%" ==+ GOTO run
if "%Mathso%" ==- GOTO run
echo Error, wrong operator. & goto retry

:run
set /p Mathsb="Second Number? "
set /a Mathsans=%Mathsa%%Mathsp%%Mathsb%
echo %Mathsans%
pause

我完全不知道它为什么要这样做。这是一个学校项目,如果您能提供任何帮助,我们将不胜感激!

最佳答案

它是您的 Mathso 变量的引号。将它们全部更改为在等式的两侧 周围使用引号,例如:

if "%Mathso%" == "+" GOTO run

而且它们应该工作得更好。

这是因为 cmd 与 UNIXy shell 不太一样。引号保留在等式的左侧,因此您最终得到的是:

if "+" == + then ...

并且“+”等于+

通过在两边加上引号,它变成:

if "+" == "+" then ...

哪个是真的。


而且,正如 Aacini 在评论中指出的那样,您的计算 set 为运算符使用了错误的变量。你应该改变:

set /a Mathsans=%Mathsa%%Mathsp%%Mathsb%

进入:

set /a Mathsans=%Mathsa%%Mathso%%Mathsb%
^
|
see here

关于batch-file - 批处理 if 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com