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

标签 batch-file if-statement

我正在编写一个小程序,但我对 if else 语句有疑问。

@echo off 
set /p points= 
echo %points% 
echo 1x5= 
set /p 15= 
if %15%==5 ( 
    echo well done! 
    set /a points=%points%+1 
) else ( echo wrong! )
pause 
echo %points% 
pause

即使我填错了答案,它仍然会为我的分数加 1 分并说“干得好!”

(顺便说一句:输入代码时遇到了一些问题,如果您能够阅读代码,现在就不要输入)

最佳答案

当调用批处理文件时命令行中包含参数时,它从代码中引用为 %1%2,... , 第二, ... 参数。

在您的代码中,当您编写 if %15%==5 ... 时,%15% 被解释为批处理文件的第一个参数( %1) 后跟一个 5 和一个被解析器丢弃的非转义非成对百分号。因此,如果批处理文件没有输入参数且 %1 为空,则您的 if 代码将执行为 if 5==5 ...

作为一般建议,批处理文件中的变量“不应”以数字开头,因为它们将被视为输入参数。

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

相关文章:

batch-file - 批处理文件中的分隔符问题

windows - 在 bat 中处理文件

javascript - Javascript 中嵌套 if 语句(函数内)的问题

java - 获取位置并显示信息而不使用 if 语句?

JavaScript 如何使用数组和循环代替多个 if 语句

java - 如何通过减少 "if"语句的数量来改进这个简单的代码?

windows - 通过 Cygwin 运行 Windows .EXE 本质上比通过 BAT 运行更慢吗?

batch-file - Windows批处理文件: echo all files in a directory with a loop

windows - 是否可以像在 unix 中一样在 Windows cmd 中获取批处理文件?

java - JOptionPane 的 While 循环返回 StringIndexOutOfBounds 异常