Как создать проверку в программе по времени создания файла
Как создать проверку в программе по времени создания файла
Если дата создания одного самого позднего файла в папке больше 7 дней, то выполнять определённое действие
|
SendMessage |
31-07-2011 09:07 1723100 |
Код:
@set @x=0/*
@echo off
set "SFolder=z:\folder\"
set "n=n"&for /f "tokens=*" %%a in ('dir /a-d/o-d/b "%SFolder%"') do (
set "n="&&set "file=%SFolder:\=\\%%%a"
)
for /f %%a in ('cscript /nologo /e:javascript "%0" "%file%"') do set "DateDiff=%%a"
:: здесь блок Ваших действий
if %DateDiff% gtr 7 echo OLD FILE
pause>nul
:: конец блока
goto:eof
*/
WScript.Echo(Math.round((new Date()-new Date(WScript.CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments.Item(0)).DateCreated))/86400000));
Если не принципиально, то лучше использовать VBS. В соседней теме.
|
Код:
@echo off
SetLocal EnableDelayedExpansion
pushd "C:\TEST" && ( for /f "delims=" %%a in ('dir/b/a-d/od') do set "FIL=%%~ta"
popd
call:JDate "%date%" JD.NOW
call:JDate "!FIL!" JD.FIL
set/a "JD.SUB=JD.NOW-JD.FIL"
if !JD.SUB! gtr 7 (
Echo Расхождение с последним файлом составило !JD.SUB! дней.
Echo Нужно выполнить определённое действие.
))
Exit/B
:JDate -- Date JDateVar
SetLocal EnableDelayedExpansion
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('"echo:|date"') do (for %%a in (yy mm dd гг мм дд) do set "%%a="
for /f "tokens=1-3 delims=/.- " %%A in ("%~1") do set "%%a=%%A"& set "%%b=%%B"& set "%%c=%%C"
for /f "tokens=1-3" %%x in ("!yy!!гг! !mm!!мм! !dd!!дд!") do set "$y=%%x"& set "$m=%%y"& set "$d=%%z"
set/a "$y=10000!$y! %%10000,$m=100!$m! %% 100,$d=100!$d! %% 100"
set/a "JD=$d-32075+1461*($y+4800+($m-14)/12)/4+367*($m-2-($m-14)/12*12)/12-3*(($y+4900+($m-14)/12)/100)/4")
EndLocal& set "%~2=%JD%"
GoTo:EOF
|
Время: 21:25.
© OSzone.net 2001-