1

我想从我的服务器获取一些细节,比如使用批处理文件的上次重启时间。我正在使用命令

系统信息 | findstr "时间:"

获取服务器的当前运行时间

现在我的问题是我想将当前的正常运行时间与计算机日期和时间进行比较,并确保如果它在不到 15 天的时间内重新启动则显示“成功”,如果在不到 15 天的时间内没有重新启动,则显示“警报”

4

1 回答 1

1

有多种方法可以将MM/DD/YYYY日期格式转换为儒略日期。如果你这样做,你可以减去nowboot找到difference.

http://www.dostips.com/DtTipsDateTime.php

调整Date2JDate公式,我能够得到服务器启动的日期和今天的日期;并计算经过的天数:

@echo off
SETLOCAL
for /f "tokens=3,* delims= " %%i in ('net statistics server ^| find /i "Statistics since"') do set _boot=%%i
for /f "tokens=2,* delims= " %%i in ('date /t') do set _now=%%i

call :Date2JDate %_boot% _bootJD
call :Date2JDate %_now% _nowJD

set /a _Elapsed=%_nowJD%-%_bootJD%

if %_Elapsed% LSS 15 (echo Success) else (echo Alert)
ENDLOCAL

goto TheEnd

:Date2JDate
SETLOCAL
for /f "tokens=1,2,3 delims=/" %%i in ('echo %1') do (set mm=%%i&set dd=%%j&set yy=%%k)
if %yy% LSS 100 set /a yy+=2000
set /a JD=dd-32075+1461*(yy+4800+(mm-14)/12)/4+367*(mm-2-(mm-14)/12*12)/12-3*((yy+4900+(mm-14)/12)/100)/4
ENDLOCAL & SET %~2=%JD%
goto TheEnd

:TheEnd

当然这假设服务器的日期格式是MM/DD/YYYY.

于 2013-05-07T05:29:55.567 回答