Windows批处理:如何读取文件中的日期和时间并将其与当前日期和时间进行比较

时间:2018-03-03 12:08:41

标签: windows date batch-file time comparison

我目前有一个批处理脚本,可以将当前日期时间保存到日志文件中。

注意:我从微软论坛获得了这个脚本,因为我不知道如何创建批处理脚本。虽然我知道如何用java开发,但在这种情况下我不想这样做。

@echo off  
REM *DATETIME.BAT 
REM *Copy date and time to create a new log file 
echo.|date>datetime.tmp  
echo.|time>>datetime.tmp 
IF NOT EXIST datetime.tmp GOTO Error1 
type datetime.tmp|FIND "current">datetime.log  
rem del datetime.tmp 
GOTO End 

:Error1 
Echo.  
Echo There was an error processing the command.  
Echo Unable to find temporary sort file DATETIME.TMP.  
Echo.  
GOTO End 

:End

我可以理解这段代码是如何工作的,日志文件中的输出就是这样的:

The current date is: 01.01.2018 
The current time is: 13:01:17,42

我想知道的是:如何在另一个脚本中读取日期和时间,并检查当前时间是否比保存的时间大1小时和/或当前日期是否为至少1天后。如果条件分别为真或不真,则应该有一个特定的返回值。

我希望我能够解释我的问题。谢谢!

1 个答案:

答案 0 :(得分:0)

我写的这是批处理和vbscript的组合(为了得到昨天的日期),你可以做if语句并匹配if date == previous date,你可以做一个类似的事情随着时间的推移

@echo off
set day=-1
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
 del "%temp%\%~n0.vbs"
 set "YYYY=%result:~0,4%"
 set "MM=%result:~4,2%"
 set "DD=%result:~6,2%"
 set "result=%yyyy%-%mm%-%dd%"
 echo %result%
pause