vbs对指定文件夹下的最新文件(csv格式)操作的代码

2024-11-25 14:24:32
推荐回答(1个)
回答1:

LogPath = "D:\123"
Set FSO = CreateObject("Scripting.FileSystemObject")
Dim dt, fn '定义两个变量用于在遍历时记录最新的创建时间和文件名
dt = "1990-1-1" '设定一个时间初始值用于后续比较
If FSO.FolderExists(LogPath) Then
    Set Folder = FSO.GetFolder(LogPath)
    For Each File In Folder.Files
        If LCase(Right(File.Name, 3)) = "csv" Then '判断文件后缀
            If DateDiff("s", dt, File.DateCreated) > 0 Then '比较创建时间
                '间隔时间以秒(s)为单位,返回两个时间间隔的秒数
                '若 dt > File.DateCreated,DateDiff返回负数
                '若 dt < File.DateCreated,则更新dt和fn
                dt = File.DateCreated
                fn = File.Name
            End If
        End If
    Next
    Set Folder = Nothing
Else
    '若文件夹路径不存在,给出错误提示并退出脚本运行
    MsgBox "Folder " & LogPath & " not found!", vbExclamation
    WScript.Quit
End If
'MsgBox fn '显示创建时间最新的文件名(不含路径),调试时可放开注释
'至此,得到文件名,下面读文件并判断第1行第1列的值是否符合要求
Const ForReading = 1
Set f = FSO.OpenTextFile(LogPath & "\" & fn, ForReading)
'MsgBox f.ReadLine '显示第1行文本内容,调试时可放开注释
ret = Split(f.ReadLine) '默认是空格分隔,若是TAB分隔,split要加第二个参数vbTab
'MsgBox ret(0) '显示第1行第1列的值,调试时可放开注释
f.Close
Set f = Nothing
Set FSO = Nothing
If ret(0) > 1.55 And ret(0) < 10.85 Then
    MsgBox "对", vbInformation
Else
    MsgBox "错", vbExclamation
End If