如何设置EQU运算符正常工作?

时间:2016-04-26 15:47:40

标签: batch-file

除非用户输入程序生成的正确数字,否则此程序中的一切正常。例如,如果输入13则回复“太低”,如果输入14则回答“太高”。如何修复此问题以使第3个if语句正常运行?

@echo off
title Game
set num1=%random%%101
:start
set /p num2=Enter a number: 
if %num2% gtr %num1% (echo too high
pause
cls
goto :start
)
if %num2% lss %num1% (echo too low
pause
cls
goto :start
)
if %num2% equ %num1% (echo Bingo!)
pause
cls
exit

1 个答案:

答案 0 :(得分:0)

此批处理文件正常工作:

@echo off
title Game
setlocal EnableDelayedExpansion
set /A num1=%random% %% 101
:Retry
cls
set "num2="
set /P "num2=Enter a number (%num1%): "
if !num2! GTR %num1% (
    echo too high
    pause
    goto Retry
)
if !num2! LSS %num1% (
    echo too low
    pause
    goto Retry
)
if !num2! EQU %num1% (
    endlocal
    echo Bingo!
    pause
    exit /B
)
goto Retry

该行

set num1=%random%%101

也可以在上面的批处理文件中使用,但创建

  • 带有随机部分的数字
  • 附加了传递给批处理文件的第一个参数,如果使用参数和
  • 调用的话
  • 附加了数字01

我想像SomethingDark那样需要0到100之间的随机数。

start 是标准的Windows命令,因此建议尽管不可能使用 start 作为标签。

启用延迟扩展并用于num2,以避免批处理用户输入任何内容或错误输入时出现语法错误而导致批处理文件退出。

在提示用户之前总是取消设置环境变量num2,否则批处理用户只需按 RETURN ENTER 继续处理任何变量{ {1}}目前有价值。

注意:随机数以提示文本输出,以查看要输入的内容以进行测试。