将今天创建/修改的文件夹中的文件名写入文本文件

时间:2015-05-21 06:10:39

标签: vbscript

我已经编写了一个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

2 个答案:

答案 0 :(得分:1)

自从我编写任何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

答案 1 :(得分:0)

仅包含更改的代码段:

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

  

日期格式是浮点值,计算自午夜30点以来的天数   1899年12月。小时和分钟表示为小数天