Показать полную графическую версию : Проверка времени нахождения файла с расширением .eml в папке
Iska, сделал скрипт с .js просит ";", при запуске с расширением .vbs просто ничего не происходит.
Georgio, батник запускается и весит без какой либо активности. ждал около часа, ноль эмоций.
kotlyar, загляните в папку "%TEMP%\$$$". Там должны лежать все LOG-файлы. Объединить их можно, применив пакетный файл со следующим кодом: @for /f %%i in ('"dir /b "%temp%\$$$"| find /c /v """') do @for /l %%j in (1 1 %%i) do @type "%temp%\$$$\%%j.log">>"report.log"& del "%temp%\$$$\%%j.log".
Пакетный файл, который Вы опробывали, долхен был сам это делать, но я забыл предупредить, что во время его работы нежелательно, чтобы были открыты другие консольные окна, а в течение пяти минут перед его закрытием это условие обязательно.
при запуске с расширением .vbs просто ничего не происходит. »
И не должно происходить, пока в искомом каталоге («strSourceFolder = "C:\Песочница\052\sib.biz.imap"» — Вы его поправили на свой?) не появится или не удалится файл с расширением .eml. Как у Вас с этим?
Iska, я поменял данный путь на свой, и по закидывал и по удалял от туда файлы. что при этом должно было произойти?
Georgio, я проверял этот путь, там создается 2 файла $$$1.tmp и $$$2.tmp, в первом из написанного только $$$, а во втором пусто. и когда проверял, других пакетных файлов не запускал.
что при этом должно было произойти? »
Примерно вот это (http://rghost.net/private/57697140/110322b23af40e73625c2d1e838940e9).
Iska, Georgio, блиин сори, там расширение же при создании не .eml(это расширение линка при отправке), а .msg, во я затупил....
Iska, Ваш скрипт отрабатывает корректно, и выводит данные создания-удаления файла.
Georgio, По вашему сценарию, в лог записываются только имена файлов которые попадают в папку, без даты-времени. Файлы закидывал, и удалял спустя 10 минут.
$$$
pd50000016231.msg
pd50000016232.msg
pd50000016233.msg
Это все, что появилось в файле $$$1.tmp.
Iska, Georgio, блиин сори, там расширение же при создании не .eml(это расширение линка при отправке), а .msg, во я затупил....
Iska, Ваш скрипт отрабатывает корректно, и выводит данные создания-удаления файла. »
Ага, ясненько, разобрались.
Таперича попробуем нарисовать простенькую запись в базу данных SQL.
кстати mssql стоит на другом хосте... И кстати он вообще ни чем не задействован, просто резерв.
Ну что там, есть какие нибудь мысли?)
kotlyar, мысли есть. Не доберусь никак до своего SQL Server.
kotlyar, пробуйте:
Option Explicit
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adFilterNone = 0
Dim strSourceFolder
Dim objFSO
Dim objFile
Dim objConnection
Dim objRecordSet
Dim objSWbemDateTime
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim objSWbemSink
strSourceFolder = "C:\Песочница\052\sib.biz.imap"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(strSourceFolder) Then
Set objConnection = WScript.CreateObject("ADODB.Connection")
Set objRecordSet = WScript.CreateObject("ADODB.Recordset")
Set objSWbemDateTime = WScript.CreateObject("WbemScripting.SWbemDateTime")
objConnection.Open _
"Provider=SQLOLEDB;Server=SQL;Database=SampleDatabase;User Id=sa;Password=password;"
objRecordSet.Open "SELECT * FROM Messages", objConnection, adOpenStatic, adLockOptimistic
For Each objFile In objFSO.GetFolder(strSourceFolder).Files
Select Case LCase(objFSO.GetExtensionName(objFile.Name))
Case "msg"
objRecordSet.Filter = "CreationDate = '" & objFile.DateCreated & "' AND FileName = '" & objFile.Path & "'"
If objRecordSet.RecordCount = 0 Then
objRecordSet.AddNew Array("CreationDate", "FileName"), Array(objFile.DateCreated, objFile.Path)
End If
objRecordSet.Filter = adFilterNone
End Select
Next
objRecordSet.Close
objConnection.Close
strComputer = "."
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set objSWbemSink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_")
With objSWbemServicesEx.Get("Win32_Directory.Name='" & Replace(strSourceFolder & "\.", "\", "\\") & "'")
objSWbemServicesEx.ExecNotificationQueryAsync objSWbemSink, _
"SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " & _
"TargetInstance ISA 'CIM_DataFile' AND " & _
"TargetInstance.Drive = '" & .Drive & "' AND " & _
"TargetInstance.Path = '" & .Path & "' AND " & _
"TargetInstance.Extension = 'msg'"
Do
WScript.Sleep 100
Loop
objSWbemSink.Cancel
Set objSWbemSink = Nothing
Set objSWbemServicesEx = Nothing
Set objSWbemLocator = Nothing
End With
Set objSWbemDateTime = Nothing
Set objRecordSet = Nothing
Set objConnection = Nothing
Else
WScript.Echo "Source folder [" & strSourceFolder & "] not found."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub Sink_OnObjectReady(objSWbemObjectEx, objSWbemAsyncContext)
objConnection.Open _
"Provider=SQLOLEDB;Server=SQL;Database=SampleDatabase;User Id=sa;Password=password;"
objRecordSet.Open "SELECT * FROM Messages", _
objConnection, adOpenStatic, adLockOptimistic
With objSWbemObjectEx
Select Case .Path_.Class
Case "__InstanceCreationEvent"
WScript.Echo Now() & " | | Create: [" & .TargetInstance.Name & "]"
objSWbemDateTime.Value = .TargetInstance.CreationDate
objRecordSet.AddNew Array("CreationDate", "FileName"), Array(objSWbemDateTime.GetVarDate, .TargetInstance.Name)
Case "__InstanceDeletionEvent"
WScript.Echo Now() & " | | Delete: [" & .TargetInstance.Name & "]"
objSWbemDateTime.Value = .TargetInstance.CreationDate
objRecordSet.Filter = "CreationDate = '" & objSWbemDateTime.GetVarDate & "' AND FileName = '" & .TargetInstance.Name & "'"
If objRecordSet.RecordCount = 1 Then
objSWbemDateTime.SetFileTime .TIME_CREATED, False
objRecordSet.Update Array("DeletionDate"), Array(objSWbemDateTime.GetVarDate)
End If
objRecordSet.Filter = adFilterNone
End Select
End With
objRecordSet.Close
objConnection.Close
End Sub
'=============================================================================
Примерный вид таблицы «Messages» в базе данных «SampleDatabase»:
http://i.imgur.com/QGRTH3Y.png
Размер для поля FileName подберите по Вашим данным. Я использовал SQL Server 2000, для других версий/серверов Connection String может отличаться.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.