0
我從文件中得到file date
:批處理 - 比較文件的日期與實際日期
for %%x in (%file_test%) do set file_date_test=%%~tx
然後我得到system date
:
set year=%date:~-4%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
然後做一個if statement
與goto
:
IF %file_date_test% LSS %system_date_test% goto SOME
如何比較兩個日期?我想檢查文件日期是否有超過24H。
這是最好的方法嗎?我可以使用forfiles
來做到這一點嗎?
感謝的錯誤級別。第一行的含義是什麼? 'setlocal enableextensions disabledelayedexpansion' – user1911
@ mac94,'setlocal'本身將確保在批處理文件結束時(或調用'endlocal')時對環境變量的更改將被丟棄,但對於使用'enableextensions'和'disabledelayedexpansion '。這是一種習慣,我必須始終將它們包括在批處理文件的開頭,以確保批處理的行爲方式。有時候人們會禁用擴展名,並且'for/f'(只是前例)將不可用。或'delayedexpansion'可以啓用並且會產生'!'問題。我使用包含該行來確保代碼運行的環境是什麼。 –
我嘗試了第二種方式,並使用'27-04-2015'中的文件,它返回給我'MATCH',但應返回'NO_MATCH' – user1911