制作"矩阵"跑了几秒钟?

时间:2015-07-11 13:10:47

标签: batch-file

我有这段代码:

:SET
@echo %random%%random%%random%%random%%random%%random%%random%%random%%random%

goto :SET

但是如何制作它只会运行几秒钟?我将如何更改此变量?

1 个答案:

答案 0 :(得分:4)

我将%TIME%作为当前时间并解析它以获得当前时间。我在循环的每次迭代中都做到了。如果没有花费在循环上的所需时间(定义为loopDuration),则继续下一次迭代。

echo off

:: Set your loop duration
set /a loopDuration=2

:: Get starting second
set "startingTime=%TIME:~6,2%"
set /a startingTime=%startingTime%

:SET

    echo %random%%random%%random%%random%%random%%random%%random%%random%%random%

    :: Get current second
    set "currentTime=%TIME:~6,2%"
    set /a currentTime=%currentTime%

    if %currentTime% lss %startingTime% (
        set /a currentTime=%currentTime% += 60
    )

    set /a timePassed=%currentTime%-%startingTime% 

:: If desired time has not passed, continue the loop
if not %timePassed% equ %loopDuration% (goto :SET)

修改

由于斯蒂芬,我还在这里查了一个特例。在这种情况下,如果startingTime的值为59或接近60的值,则currentTime很可能具有小于startingTime的值。我用一个简单的if语句检查了它:

if %currentTime% lss %startingTime% (
    set /a currentTime=%currentTime%+=60
)

因此currentTime不可能小于startingTime。除非你希望你的循环运行超过59秒。