下面的批處理文件將文件日期轉換爲Julian日編號,這是一個連續的天數,並用它來知道每個天有多少天。參數中給出了刪除文件的天數。
@echo off
setlocal EnableDelayedExpansion
rem Get Julian Day Number of today's date
rem The assumed format is MM/DD/YYYY, change C-A-B order in accordance with your locale
for /F "tokens=1-3 delims=/" %%a in ("%date%") do (
set todayDate=%%c%%a%%b
)
call :DateToJDN %todayDate% todayJDN=
for /F "tokens=1-3 delims=_." %%a in ('dir /B /A-D *.*') do (
call :DateToJDN %%b fileJDN=
set /A daysOld=todayJDN - fileJDN
if !daysOld! gtr %1 (
echo File "%%a_%%b.%%c" is !daysOld! days old
)
)
goto :EOF
:DateToJDN yyyymmdd jdn=
set yyyymmdd=%1
set /A yyyy=%yyyymmdd:~0,4%, mm=1%yyyymmdd:~4,2% %% 100, dd=1%yyyymmdd:~6% %% 100
set /A a=(mm-14)/12, %2=(1461*(yyyy+4800+a))/4+(367*(mm-2-12*a))/12-(3*((yyyy+4900+a)/100))/4+dd-32075
exit /B
測試此程序和由期望del "%%a_%%b.%%c"
一個改變echo File "%%a_%%b.%%c" ...
命令。
參考:http://www.hermetic.ch/cal_stud/jdn.htm#comp
你嘗試過這麼遠嗎?請[編輯]您的問題以包含所有相關的代碼。 –
你會回去的最多天數是多少? –