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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows批处理:如何读取文件中的日期和时间并将其与当前日期和时间进行比较相关的知识,希望对你有一定的参考价值。

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

注意:我从微软论坛获得此脚本,因为我不知道如何创建批处理脚本。虽然我知道如何用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天。如果条件分别为真或不真,则应该有特定的返回值。

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

答案

这是我写的这是批处理和vbscript的组合(为了得到昨天的日期),你可以做一个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

以上是关于Windows批处理:如何读取文件中的日期和时间并将其与当前日期和时间进行比较的主要内容,如果未能解决你的问题,请参考以下文章

java读取excel时间格式出现数字怎么处理

如何更改当前系统时间日期并插入到文本文档中

如何查找上周日的日期并将其保存在Windows批处理文件的变量中

如何告诉 lapply 忽略错误并处理列表中的下一件事?

在 Windows 批处理中使用创建日期和时间重命名文件

如何根据SSIS中的创建日期读取文件夹的所有文件?