批量格式化文件日期YYYYMMDD

Cid*_*idr 2 windows cmd batch-file

我一直在研究批处理文件中的一些代码来评估两个文件日期.如果一个日期大于另一个日期,那么它将运行另一个bat文件.我想要做的是将两个日期格式化为YYYYMMDD,以便我可以使用GTR(大于).

代码在下面,但如果我使用==(相等)它可以工作,因为它正在评估字符串.我只想知道一个文件日期是否大于另一个文件日期.

我不是要求有人修改下面的代码,但如果你能告诉我如何格式化日期,我将非常感激.


set Fileone=File1.txt
set FileTwo=File2.txt

pushd "D:\Board\Broadcast\FA_Report8_A"
FOR %%f IN (%FileOne%) DO SET filedatetime=%%~tf
FOR %%f IN (%FileTwo%) DO SET filedatetime2=%%~tf
SET filedatetime2=%year%%month%%day%
IF %filedatetime:~0, 10% GTR %filedatetime2:~0, 10% ( 
echo FileOne Greater - run bat
timeout /t 20 /nobreak
goto Finish
) else (
echo FileOne not Greater - Finish
goto Finish
)
:Finish
echo finished 
pause
Run Code Online (Sandbox Code Playgroud)

Ale*_* K. 10

它在具有不同日期格式的计算机之间不可移植,但最简单的方法是使用子字符串: %var:~STARTPOS,LENGTH%

set filedatetime=14/06/2012 12:26
set filedatetime=%filedatetime:~6,4%%filedatetime:~3,2%%filedatetime:~0,2%
echo "%filedatetime%"

"20120614"
Run Code Online (Sandbox Code Playgroud)