将今天 created/modified 的文件夹中的文件名写入文本文件

Write names of files in a folder that have been created/modified today to text file

我已经编写了一个 VBScript 来将一个文件夹中的所有文件名写入一个文本文件,但我真正想要的是仅列出特定文件夹中已修改或创建的 .txt 文件的名称今天

代码:

Dim fso
Dim ObjFolder
Dim ObjOutFile
Dim ObjFiles
Dim ObjFile

Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjFolder = fso.GetFolder("D:\test")
Set ObjOutFile = fso.CreateTextFile("D:\test\File_names.txt")
Set ObjFiles = ObjFolder.Files

For Each ObjFile In ObjFiles
    ObjOutFile.WriteLine(ObjFile.Name)
Next

ObjOutFile.Close

我已经有很长时间没有编写任何 VBScript 了,但这是正确的。您可能需要稍微调整一下

Dim fso
Dim ObjFolder
Dim ObjOutFile
Dim ObjFiles
Dim ObjFile


Set fso = CreateObject("Scripting.FileSystemObject")
Set ObjFolder = fso.GetFolder("c:\temp\")
Set ObjOutFile = fso.CreateTextFile("c:\temp\File_names.txt")
Set ObjFiles = ObjFolder.Files

For Each ObjFile In ObjFiles
   If (LCase(Mid(objFile.Name, InStrRev(objFile.Name, "."))) = ".txt") Then
    If FormatDateTime(ObjFile.DateLastModified, 2) = FormatDateTime(Now(), 2) OR FormatDateTime(ObjFile.DateCreated , 2) = FormatDateTime(Now(), 2)   Then
            ObjOutFile.WriteLine(ObjFile.Name)
    Else
            ObjOutFile.WriteLine(ObjFile.Name & " - Modified:" & FormatDateTime(ObjFile.DateLastModified, 2) & " " & FormatDateTime(Now(),2) & " Created: " & FormatDateTime(ObjFile.DateCreated , 2) & " " & FormatDateTime(Now(), 2) )

    End if
   Else
     ObjOutFile.WriteLine(ObjFile.Name & " Not Text")
   End if
Next
ObjOutFile.Close

仅更改的代码片段:

For Each ObjFile In ObjFiles
    If StrComp( Right( ObjFile.name, 4), ".txt", vbTextCompare) = 0 and _
      ( Fix( ObjFile.DateCreated)      = Fix( Now) or _
        Fix( ObjFile.DateLastModified) = Fix( Now)       ) Then

            ObjOutFile.WriteLine(ObjFile.Name)
    End If 
Next

FIX() explanation:

date format is a floating point value, counting days since midnight 30 December 1899. Hours and minutes are represented as fractional days