【问题标题】:Batch check if a variable is negative批量检查变量是否为负
【发布时间】:2013-07-19 03:14:43
【问题描述】:

我批量遇到一个小问题,我找不到解决方法! 我正在研究一个点系统,只需要一个字符串来检查变量是否为负。 会是这样的:

set /p points=10
set /p price=15
set /a result=%points%-%price%
if result < 0 ( goto error ) else ( goto done)

:error
echo You have not enough Points !

:done
echo Transaction Successfully Finished !

关键是,我想将用户重定向到不同的标签,具体取决于定义货币(或类似的东西)的变量是正数还是负数。

编辑:4 年后,感谢您帮助了一个可怜的脚本孩子,我现在正在学习 IT:D

【问题讨论】:

    标签: variables if-statement batch-file set false-positive


    【解决方案1】:

    我是一个批处理文件新手(但是一个有抱负的爱好者!)所以如果我的回答没有帮助,请见谅。

    通过在命令行输入if /?,您将看到这些比较运算符:

    EQU - equal
    NEQ - not equal
    LSS - less than
    LEQ - less than or equal
    GTR - greater than
    GEQ - greater than or equal
    

    在这种情况下,我将使用以下语法:

    if result LSS 0 (goto :error) else (goto :done)
    

    我希望这会有所帮助!

    【讨论】:

    • 您好!我有几分钟的空闲时间,并决定对此进行扩展并纠正一些错误。该文件经过测试,似乎可以工作。如果有任何错误,请告诉我。 pastebin.com/Ksv8yZ28
    【解决方案2】:
    if result LSS 0 ...
    

    或 GTR GEQ LEQ EQU NEQ 取决于所需的比较。

    【讨论】:

    • 我的意思是代替if result &lt; 0 ( goto error ) else ( goto done) 尝试用if result LSS 0 ( goto error ) else ( goto done) 替换它LSS 意味着小于。如果要大于或等于,请使用GTR,大于或等于时使用GEQ,小于或等于时使用LEQ,等于或不等于时使用EQU
    猜你喜欢
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2011-02-26
    • 2011-03-20
    相关资源
    最近更新 更多