开发者

Search By Seconds Not Minutes

I have a batch file that works pretty well. I originaly set it up to search for files that are a minute or less old. I need to go down further and search for files that are 15 seconds old. I hope thats quick enough, I might have to adjust it later. In any case can anyone help me get it down to the seconds range. Thank you. Your help is appreciated.

@echo off
cd "C:\Users\DS\Downloads" 
setlocal 
call :DateToMinutes %date:~-4% %date:~-10,2% %date:~-7,2% %time:~0,2% %time:~3,2% NowMins 

set flag=0 
for /f "delims=" %%a in ('dir *.jpg *.zip *.txt /a-d /b') do call :CheckMins "%%a" "%%~ta" 

if %flag% EQU 1 ( 
msg * "Good-Bye!"
)
set flag=0  
goto :EOF

:CheckMins
set File=%1
set TimeStamp=%2
call :DateToMinutes %timestamp:~7,4% %timestamp:~1,2% %timestamp:~4,2% %timestamp:~12,2% %timestamp:~15,2%%timestamp:~18,1% FileMins
set /a MinsOld=%NowMins%-%FileMins%
if %MinsOld% leq 1 del %file%
if %MinsOld% leq 1 set flag=1
goto :EOF

:DateToMinutes
setlocal
set yy=%1&set mm=%2&set dd=%3&set hh=%4&set nn=%5
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+480开发者_开发知识库0-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
if 1%hh% LSS 20 set hh=0%hh%
if /i {%nn:~2,1%} EQU {p} if "%hh%" NEQ "12" set hh=1%hh%&set/a hh-=88
if /i {%nn:~2,1%} EQU {a} if "%hh%" EQU "12" set hh=00
if /i {%nn:~2,1%} GEQ {a} set nn=%nn:~0,2%
set /a hh=100%hh%%%100,nn=100%nn%%%100,j=j*1440+hh*60+nn
endlocal&set %6=%j%&goto :EOF


I didn't know a simple batch way to get the seconds, but you can get them via WMIC.

WMIC DATAFILE WHERE Name="C:\\windows\\DirectX.log" GET lastmodified,Lastaccessed

The format of the output is a bit odd, but it should work.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜