我想从我的服务器获取一些细节,比如使用批处理文件的上次重启时间。我正在使用命令
系统信息 | findstr "时间:"
获取服务器的当前运行时间
现在我的问题是我想将当前的正常运行时间与计算机日期和时间进行比较,并确保如果它在不到 15 天的时间内重新启动则显示“成功”,如果在不到 15 天的时间内没有重新启动,则显示“警报”
我想从我的服务器获取一些细节,比如使用批处理文件的上次重启时间。我正在使用命令
系统信息 | findstr "时间:"
获取服务器的当前运行时间
现在我的问题是我想将当前的正常运行时间与计算机日期和时间进行比较,并确保如果它在不到 15 天的时间内重新启动则显示“成功”,如果在不到 15 天的时间内没有重新启动,则显示“警报”
有多种方法可以将MM/DD/YYYY
日期格式转换为儒略日期。如果你这样做,你可以减去now
以boot
找到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
.