|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Просмотр даты изменения файла и отправка сообщения |
|
VBS/WSH/JS - [решено] Просмотр даты изменения файла и отправка сообщения
|
Пользователь Сообщения: 121 |
Профиль | Отправить PM | Цитировать Доброго времени суток!
Просьба помочь с написанием скрипта который бы проверял дату последнего изменения файла. И в случае если это дата на 25 минут меньше нынешней отправлял сообщение о том что файл не изменялся в течении 25 минут. При этом дата файла динамическая, состоит по принципу KPK30032011.txt - где 30032011 это дата сегодняшнего дня. Заранее искренно благодарен! |
|
Отправлено: 18:24, 30-03-2011 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Может подойдёт? Попробуй...
strFolder="ПУТЬ_К_ПАПКЕ" dtCutOff=DateAdd("n", -25, Now) Set objFSO=CreateObject("Scripting.FileSystemObject") Set objFolder=objFSO.GetFolder(strFolder) WScript.Echo "Проверка модифицированных файлов ранее " & dtCutoff & Chr(10) &_ "в папке " & strFolder & "." Set colFiles=objFolder.Files For Each file In colFiles If file.DateLastModified < dtCutoff Then WScript.Echo file.name Next |
Отправлено: 22:29, 30-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Спасибо Но все гораздо проще нужно проверять один файл с динамическим названием (KPKddmmyyyy.txt - где ddmmyyyy это дата сегодняшнего дня). Принцип задачи в том что бы проверять нормально ли работает авто задача. В случае ее нормально работы последнее изменение файла будет изменятся каждые 15 минут. Если файлик не меняется уже 25 минут значит задача не работает вот в этот момент и вывести сообщение о том что у нас проблемы...
|
Отправлено: 10:29, 31-03-2011 | #3 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Вот так ещё можно.
myDateTime = Right("0" & Day(Date), 2) & Right("0" & Month(Date), 2) & Year(Date) dtCutOff=DateAdd("n", -25, Now) File="KPK"&myDateTime&".txt" filespec="C:\СВОЙ\ПУТЬ\К\ПАПКЕ\"&file set fso=createobject("scripting.filesystemobject") set f=fso.GetFile(filespec) If f.DateLastModified < dtCutoff Then ' Вместо WScript.Echo делай свою задачу. WScript.Echo "Файл " &f.name& " изменён раньше "&dtCutOff End if set f=nothing set fso=nothing |
Отправлено: 15:18, 31-03-2011 | #4 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Спасибо то что надо Только как так сделать что бы если файл отсутствует он просто промолчал
|
|
Отправлено: 16:18, 31-03-2011 | #5 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать Вот еще вариант. Скрипт с заданным дискретом опрашивает файл. Если файл устарел, выдаётся сообщение, однако через заданный дискрет опрос повторяется. Если файла нет, выдаётся сообщение, однако через заданный дискрет опрос повторяется Если это сообщение не нужно - закомментируйте. Пути, префикс файла (у Вас KPK), расширение, дискрет опроса, порог устаревания -укажите свои.
Where = "H:\Delete\" ' Где файлы Pref = "Kuku" ' Префикс файлов Ext = ".txt" ' Расширение файлов DMin = 0.5 ' Дискрет опроса Минут OldMin = 25 ' Порог устаревания файла (минут) FName = Where + Pref + Mid(CStr(100 + Day(Date)), 2, 2) + Mid(CStr(100 + Month(Date)), 2, 2) + CStr(Year(Date)) + Ext Set WS = CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") L = True Do While L Cont = 0 Older = DateAdd("n", -OldMin, Now) If FSO.FileExists(FName) Then DN = FSO.GetFile(FName).DateLastModified If DN < Older Then Cont = WS.Popup(FName, DMin * 60, "Файл старше " + CStr(OldMin) + " минут", 50) ''''' Else ''''' Cont = WS.Popup(FName, DMin * 60, "Файл изменялся " + CStr(DN), 50) End If Else Cont = WS.Popup(FName, DMin * 60, "Файл не найден.", 50) End If If Cont = 3 Then Exit Do If Not (Cont = 4 Or Cont = -1) Then WScript.Sleep (DMin * 60 * 1000) End If Loop "Повторить"= немедленно переопросить файл . "Пропустить"=повторить опрос через заданный дискрет "Прервать" = снять скрипт Сообщение о том, что файл за разрешенный период изменялся, закомментировано (было нужно для отладки), при необходимости, можете восстановить, убрав ''''. |
------- Последний раз редактировалось megaloman, 31-03-2011 в 18:42. Отправлено: 17:33, 31-03-2011 | #6 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Цитата SanyaJoker:
myDateTime = Right("0" & Day(Date), 2) & Right("0" & Month(Date), 2) & Year(Date) dtCutOff=DateAdd("n", -25, Now) File="KPK"&myDateTime&".txt" filespec="C:\СВОЙ\ПУТЬ\К\ПАПКЕ\"&file set fso=createobject("scripting.filesystemobject") If not FSO.FileExists(filespec) Then msgbox "Файл "&filespec&" осутствует!" ' msgbox - убрать за ненадобностью WScript.Quit Else set f=fso.GetFile(filespec) If f.DateLastModified < dtCutoff Then ' Вместо WScript.Echo делай свою задачу. WScript.Echo "Файл " &f.name& " изменён раньше "&dtCutOff End if End if set f=nothing set fso=nothing |
|
Отправлено: 21:32, 31-03-2011 | #7 |
Пользователь Сообщения: 121
|
Профиль | Отправить PM | Цитировать Огромное спасибо Очень помог!
|
Отправлено: 10:12, 01-04-2011 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Отправка сообщения п локальному адресу | Expo37 | AutoIt | 0 | 11-07-2010 13:38 | |
VBS/WSH/JS - [решено] Проверка даты изменения папки. | ufunf | Скриптовые языки администрирования Windows | 2 | 28-01-2010 07:44 | |
[решено] Запрет изменения даты | laro4ka | Microsoft Windows 95/98/Me (архив) | 3 | 05-12-2008 14:27 | |
Доступ - [решено] Запрет изменения даты | laro4ka | Microsoft Windows 2000/XP | 1 | 04-12-2008 10:40 | |
Отправка сообщения по сети | Vampire | Сетевые технологии | 2 | 10-08-2004 16:41 |
|