【问题标题】:Batch Variable Evaluation批量变量评估
【发布时间】:2012-07-20 13:26:06
【问题描述】:

批处理新手。我已将问题范围缩小到我认为如何评估批处理变量。

setlocal enableextensions enabledelayedexpansion
set timelimit=30
for /F "USEBACKQ tokens=4,6,8" %%a in (`systeminfo ^| qgrep -e "System Up Time:"`) do set /A timepassed=%%a*24*60+%%b*60+%%c

IF "!timepassed!" LEQ "%timelimit%" (

echo %timelimit%

) ELSE (

echo !timepassed!

)

运行时,我希望批处理输出 !timepassed! (目前为 1250)但是,它总是输出 %timelimit% (30),让我相信 LEQ IF 正在被采用,这对我来说毫无意义。

【问题讨论】:

  • 在设置变量值并删除 if 条件中的引号时尝试使用“set /a”。现在您可以进行字符串比较了。

标签: time batch-file wait


【解决方案1】:

按照建议,在您的代码中尝试以下更改

使用/A选项设置变量值

set /a timelimit=30

并将值与

进行比较
IF !timepassed! LEQ !timelimit! (

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2013-06-23
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多