2010-07-06 20 views

回答

3

有几个Windows端口* nix中find命令可用,提供像-mmin-mtime交换机,在这里很有用,从而可以使问题与一衬垫来解决...
注意,PowerShell的肯定是一个可行的替代achieve this goal

在纯DOS,这里是一个相当有限的批处理脚本,但它足以为基地,以解决您的问题:

@echo off 
setlocal enabledelayedexpansion 

call :GetRefTimestamp -30 
for %%f in (*) do (
    call :GetFileTimestamp "%%~tf" 
    if "!filetimestamp!" LSS "!reftimestamp!" echo -- %%f is older than 30 minutes 
    if NOT "!filetimestamp!" LSS "!reftimestamp!" echo ++ %%f is NOT older than 30 minutes 
) 

endlocal 
goto :EOF 

:GetRefTimestamp 
::get current date/time 
for /f "usebackq tokens=1-5 delims=/:, " %%f in (`echo %DATE:~-10% %TIME: =0%`) do set reftimestamp=%%h%%g%%fT%%i%%j 
::apply delta (format [-]HHMM) on time part - not handling over/underflow 
set /a timedelta=%~1 
set timedeltasign= 
if %timedelta% LSS 0 set timedeltasign=- 
set timeHHMM=%timestamp:~-4% 
set /a timeHHMM+=timedelta 
set /a timeMM=timeHHMM %% 100 
if %timeMM% GEQ 60 set /a timeHHMM+=%timedeltasign%40 
set timeHHMM=000%timeHHMM% 
set reftimestamp=%reftimestamp:~0,-4%%timeHHMM:~-4% 
goto :EOF 

:GetFileTimestamp 
::get file date/time 
for /f "usebackq tokens=1-5 delims=/:, " %%f in (`echo %~1`) do set filetimestamp=%%h%%g%%fT%%i%%j 
goto :EOF 

只要使用常识的增量(知道的限制),并使用避免引导零:]

相关问题