VBScript检查文件夹中的文件,并通过电子邮件发送过去1小时未更新的文件名

VBScript to check files in folder and email the file name not updated past 1 hour

本文关键字:过去 1小时 电子邮件 更新 文件名 文件夹 检查 文件 VBScript      更新时间:2023-09-26

我需要帮助,我是VBScript的新手。我需要一个vbscript,它可以检查包含10到20个.csv文件的文件夹,需要检查日期&时间,并发送超过15分钟到1小时未更新文件的报告。

文件位于网络共享上。(''用户''文件)

感谢您的回复指南。

我确实根据自己的需要更改了代码,但仍然需要更多的帮助。

   DirCheck="W:'RC"
   set fso=CreateObject("Scripting.FileSystemObject")
    Set FOL = fso.GetFolder(DirCheck)
    Set output = fso.CreateTextFile("C:'Temp'output.txt",True) 
    For each fil in FOL.files
        strExtension=Fso.GetExtensionName(fil.name)
        If UCase(strExtension)="CSV" Then
        output.WriteLine fil.name
     End If
    Next
    Set fso=Nothing

我希望它在output.txt中写入文件名+文件的最后修改日期。当前它正在写入文件名。有人能指引我吗?

FileSystemObject是您的朋友,如果您在VBScript中处理文件,请学会爱上FSO。

这个示例应该会有所帮助——显示自上次修改CSV文件以来的时间(以分钟为单位)——只要运行脚本的用户对共享具有读取权限,它就可以在共享上工作。

DirCheck="C:'test"
set fso=CreateObject("Scripting.FileSystemObject")
Set FOL = fso.GetFolder(DirCheck)
For each fil in FOL.files
    strExtension=Fso.GetExtensionName(fil.name)
    If UCase(strExtension)="CSV" Then
        strFileName=fil.name
        wscript.echo("File : " & strFileName)
        Wscript.echo("Mins since last modificaion: " & DateDiff("n",fil.DateLastModified,now))
    End If
Next
Set fso=Nothing

查找文档。如果你有交换,你必须设置不同的属性。

Set emailObj      = CreateObject("CDO.Message")
emailObj.From     = "ndy@gail.com"
emailObj.To       = "ndy@gail.com"
emailObj.Subject  = "Test CDO"
emailObj.TextBody = "Test CDO"
emailObj.AddAttachment "c:'windows'win.ini"
Set emailConfig = emailObj.Configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "ndy"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "password"
emailConfig.Fields.Update
emailObj.Send
If err.number = 0 then Msgbox "Done"