Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/20: Рейтинг темы: голосов - 20, средняя оценка - 4.55
DeeMass
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 10
1

Мониторинг файлов по дате создания и расширению

21.05.2012, 10:47. Просмотров 3717. Ответов 5
Метки нет (Все метки)

Здравствуйте, есть задача мониторить папку на предмет наличия файлов с расширениями, допустим .txt, .doc, .jpg которые залежались дольше 5 минут (т.е. дата их создания 5 минут назад и больше) Заранее благодарен
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2012, 10:47
Ответы с готовыми решениями:

Поиск файлов по дате создания
Здравствуйте. Есть вот такое задание Вывод на экран списка файлов, хранящихся...

Копирование файлов по дате создания
Здравствуйте, Уважаемые. Требуется Ваша помощь, если есть желание и время на...

Удаление файлов по маске по дате создания
Прошу помоч создать бат-файл удаление файлов по маске по дате создания. файлы...

Перемещение файлов по папкам по дате создания
Всем привет. Нужна помошь. Есть папка где более 1000 файлов. Задача в том...

Вывод имён файлов по дате и времени их создания
Добрый день. Помогите пожалуйста написать командный файл для вывода на экран...

5
CyberMuesli
3 / 3 / 1
Регистрация: 19.05.2012
Сообщений: 13
28.05.2012, 01:05 2
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

Курсовая? :-)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
@echo off
 
rem %1=path 
 
:start
setlocal enabledelayedexpansion
if not %errorlevel%==0 (
   echo ERROR: setlocal enabledelayedexpansion
   exit /b 1
)
 
set /a MaxSecAgo=5*60
 
for %%i in (%1) do (
    call :GetFileInfo[] %%i F
    if !F.ModifyedSecAgo! GTR %MaxSecAgo% (
       echo !F.PNX! is too old {!F.DT! is !F.ModifyedSecAgo! sec. ago}
    )
)
 
goto :eof
 
::===========================================================================
:DateTime2Seconds[]
::===========================================================================
:: %1="DD.MM.YYYY HH:MM:SS" %2=VarName
 
set dt2s.Param=%~1
set dt2s.Year=!dt2s.Param:~6,4!
set dt2s.Month=!dt2s.Param:~3,2!
set dt2s.Day=!dt2s.Param:~0,2!
set dt2s.HH=!dt2s.Param:~11,2!
set dt2s.MM=!dt2s.Param:~14,2!
set dt2s.SS=!dt2s.Param:~17,2!
 
if %dt2s.Year% LSS 1980 (
   set %2=0
   goto :eof
)
if %dt2s.Year% GEQ 2048 (
   set /a %2=0x7FFFFFF+0
   goto :eof
)
 
set S01=0     
set /a S02=S01 + 31 * 86400
set /a S03=S02 + 28 * 86400
set /a S04=S03 + 31 * 86400
set /a S05=S04 + 30 * 86400
set /a S06=S05 + 31 * 86400
set /a S07=S06 + 30 * 86400
set /a S08=S07 + 31 * 86400
set /a S09=S08 + 31 * 86400
set /a S10=S09 + 30 * 86400
set /a S11=S10 + 31 * 86400
set /a S12=S11 + 30 * 86400
 
call :LeapCount[] %dt2s.Day%.%dt2s.Month%.%dt2s.Year%
 
call :Trim1st0[] %dt2s.Day% dt2s.Day
call :Trim1st0[] %dt2s.HH%  dt2s.HH 
call :Trim1st0[] %dt2s.MM%  dt2s.MM 
call :Trim1st0[] %dt2s.SS%  dt2s.SS 
 
Set /a %2=((%dt2s.Year%-1980)*31536000) + S%dt2s.Month% + (%dt2s.Day%-1+%LeapCount%)*86400 + %dt2s.HH%*3600 + %dt2s.MM%*60 + %dt2s.SS%
 
goto :eof
 
::===========================================================================
:GetFileInfo[]
::===========================================================================
:: %1: filename %2: VarName
:: return: VarName.Origin VarName.Drive VarName.Path... etc
 
set %2.Origin=%1
for %%i in (%1) do (
   set %2.Drive=%%~di
   set %2.Path=%%~pi
   set %2.DPath=%%~dpi
   set %2.PNX=%%~fi
   set %2.NX=%%~nxi
   set %2.DT=%%~ti
   set %2.Size=%%~zi
)
 
if not "!%2.DT!"=="" (
   set %2.Year=!%2.DT:~6,4!
   set %2.Month=!%2.DT:~3,2!
   set %2.Day=!%2.DT:~0,2!
   set %2.HH=!%2.DT:~11,2!
   set %2.MM=!%2.DT:~14,2!
   set %2.SS=00
   call :DateTime2Seconds[] "%DATE% %TIME%" Now.DTSec
   call :DateTime2Seconds[] "!%2.DT!.00"     %2.DTSec
   set /a %2.ModifyedSecAgo=Now.DTSec-%2.DTSec
)
goto :EOF
 
 
::===========================================================================
:Trim1st0[]
::===========================================================================
:: %1=string %2=var
if "%1"=="0" (
   set %2=%1
   goto :eof
)
set String=%1
set Char=!String:~0,1!
if "!Char!"=="0" (
    set %2=!String:~1!
) else (
   set %2=%1
)
goto :eof
 
::===========================================================================
:DisplayFileInfo[]
::===========================================================================
echo %1.Origin      !%1.Origin!
echo %1.Drive       !%1.Drive! 
echo %1.Path        !%1.Path!  
echo %1.DPath       !%1.DPath!  
echo %1.PNX     !%1.PNX!
echo %1.NX      !%1.NX!
echo %1.DT      !%1.DT!
echo %1.DTSec       !%1.DTSec!
echo %1.Size        !%1.Size!
echo %1.Year,Month,Day  !%1.Year!,!%1.Month!,!%1.Day!
echo %1.HH,MM,SS    !%1.HH!,!%1.MM!,!%1.SS!
echo %1.ModifyedSecAgo  !%1.ModifyedSecAgo!
goto :eof
 
 
::===========================================================================
:LeapCount[]
::===========================================================================
:: %1=date, 1.1.1999 must be passed as 01.01.1999
:: return: !LeapCount!, Count of leap Days from 01.01.1980 to %1
 
set LeapCount.Debug==No
if "%1"=="-debug" (
   shift
   set LeapCount.Debug==Yes
)
 
set LeapCount.Date=%1
set LeapCount.Year=%LeapCount.Date:~-4%
set LeapCount.Month=%LeapCount.Date:~3,2%
set LeapCount.Day=%LeapCount.Date:~0,2%
 
set LeapCount=0
 
for /l %%i in (1980,1,!LeapCount.Year!) do (
    set /a LeapCount.Div4=%%i   %% 4
    set /a LeapCount.Div100=%%i %% 100
    set /a LeapCount.Div400=%%i %% 400
 
    set LeapCount.IsLeapYear=No
    if !LeapCount.Div400!==0 (
       set LeapCount.IsLeapYear=Yes
    ) else (
       if !LeapCount.Div4!==0 (
           if not !LeapCount.Div100!==0 (
              set LeapCount.IsLeapYear=Yes
           )
       )
    )
    if !LeapCount.IsLeapYear!==Yes (
       if !LeapCount.Year!==%%i (
          if !LeapCount.Month! GEQ 03 (
             set /a LeapCount+=1
          )
       ) else (
          set /a LeapCount+=1
       )
       if "LeapCount.Debug"=="Yes" (
          echo LeapCount: %%i !LeapCount!
       )
    )
)
goto :eof
C>dtdemo.bat C:\Scripts\*.*
C:\Scripts\1 is too old {28.05.2012 00:53 is 541 sec. ago}
C:\Scripts\png.vbs is too old {28.05.2012 00:14 is 2882 sec. ago}
C:\Scripts\post is too old {27.05.2012 23:28 is 5642 sec. ago}
C:\Scripts\ppp.bat is too old {27.05.2012 22:52 is 7802 sec. ago}
C:\Scripts\TestPing.bat is too old {27.05.2012 23:16 is 6362 sec. ago}
C:\Scripts\trysample.vbs is too old {27.05.2012 15:22 is 34802 sec. ago}
2
DeeMass
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 10
28.05.2012, 17:17  [ТС] 3
Спасибо!
Нет, не курсовая, задача просто такая появилась, а nnCron использовать не хотелось.
0
CyberMuesli
3 / 3 / 1
Регистрация: 19.05.2012
Сообщений: 13
29.05.2012, 09:53 4
что ж это за спешка такая - 5 минут залежались файлы и уже их искать надо? )
0
DeeMass
0 / 0 / 0
Регистрация: 10.06.2010
Сообщений: 10
19.06.2012, 17:23  [ТС] 5
да, вот такие важные файлы бывают)
0
elektron
0 / 0 / 0
Регистрация: 18.01.2012
Сообщений: 17
05.11.2014, 17:51 6
CyberMuesli, а можно хоть немного комментариев к даному скрипту?Тоже хочеться такой скрипт, только под себя переделать, а в BAT несильон?
0
05.11.2014, 17:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2014, 17:51

Премещение файлов в каталоги с сортировкой по дате создания
Дано: Каталог с любым количеством файлов. Задача: Создать каталоги...

Поиск на диске файлов по дате создания, введённой с клавиатуры
Здравствуйте, подскажите пожалуйста. Как создать бат файл который бы искал в...

Копирование всех файлов с заменой на более свежие по дате создания
Ну весь вопрос в теме, как скопировать все файлы знаю, а как поработать при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru