如何获取上次重启时间和当前系统时间之间的时间日期和时间差?

时间:2017-10-23 11:41:21

标签: batch-file

我有以下要求。

  1. 系统将在晚上8点 - 晚上9点重启。
  2. 晚上9点,我已经安排了一个批处理脚本运行,它应该检查重启是否发生在计划的批处理脚本运行的同一天下午8点到9点之间。如果是,那么成功即使没有失败。
  3. 脚本:我的方法。

    @echo off
    
    REM Able to get the system up time.
    
    for /F "tokens=1-2,3*" %%i IN ('net statistics workstation') do
        if "Statistics since"=="%%i %%j" set DateTime=%%k %%l
    
    Echo datetime=%DateTime%
    
    REM Able to get the current system time.
    
    set Curr=%date%%time%
    echo Current=%Curr%
    
    set Difference=%Curr%-%DateTime%
    echo Difference
    

    期望:

    如果差异小于或等于60分钟,那么成功就会失败。

1 个答案:

答案 0 :(得分:0)

以下是一些使用PowerShell的示例批处理代码。它旨在确定自上次启动以来的分钟数,根据60分钟的正常运行时间回显成功/失败消息。

@Echo Off
For /F "Delims=" %%A In ('PowerShell -C "[timespan]::FromMilliseconds("^
 "[Math]::Abs([Environment]::TickCount)).TotalMinutes"'
) Do If %%~nA GEq 60 (Echo(Failure) Else Echo(Success 
Timeout -1