Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBscript从一个大小为0kb且具有当前日期的目录中删除多个.txt文件_Vbscript - Fatal编程技术网

VBscript从一个大小为0kb且具有当前日期的目录中删除多个.txt文件

VBscript从一个大小为0kb且具有当前日期的目录中删除多个.txt文件,vbscript,Vbscript,如何使用VBscript从一个大小为0kb且具有当前日期的目录中删除多个.txt文件?如果这是一次性清理,您可能可以使用Windows资源管理器筛选类型、大小和日期列,一次查找并删除它。如果这是一个需要脚本的反复出现的事情,我的第一个猜测是这样做: Dim fs, f, f1 Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder("C:\FolderPath") For Each f1 in f.File

如何使用VBscript从一个大小为0kb且具有当前日期的目录中删除多个
.txt
文件?

如果这是一次性清理,您可能可以使用Windows资源管理器筛选类型、大小和日期列,一次查找并删除它。如果这是一个需要脚本的反复出现的事情,我的第一个猜测是这样做:

Dim fs, f, f1
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("C:\FolderPath")
For Each f1 in f.Files
    If f1.Size = 0 and f1.DateLastModified = Date Then
        f.DeleteFile
    End If
Next

Set fs = Nothing
Set f = Nothing
Set f1 = Nothing

我还没有测试这段代码,所以我会先在一个虚拟位置上进行测试。我希望这会有所帮助。

这是一个经过测试的版本,应该适合您;)


删除@Hackoo和@legendjr代码(只使用了一次变量(没有f,没有f.DeleteFile的机会),伪装类型转换,并利用以下事实:


到目前为止,您在代码方面做了哪些尝试?首先将f.Files中的每个f1更改为
,然后进行测试。其次考虑.DateLastModified有一个特定的时间,Date有一个隐含的00:00:00时间,以及
=
的语义,然后进行测试。如果为True,您可以将其包装为Day(f1.DateLastModified)=Day(Date)第三个问题是文件夹是否有.DeleteFile方法以及如何正确命名变量,然后进行测试。到现在为止,您应该已经意识到未测试代码的危险。
Option Explicit
Dim fs, f, f1, D, MyDate
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("E:\Test")
For Each f1 in f.files
    D = f1.DateLastModified
    MyDate = Split(D," ")
    If f1.size = 0 and Cdate(MyDate(LBound(MyDate))) = Date Then     
    fs.deletefile f1.path,true
End If
Next
Set fs = Nothing
Set f = Nothing
Set f1 = Nothing
Option Explicit

Const csFolder = ".\30252843"

Dim dblToday : dblToday = Date()
Dim oFile
For Each oFile In CreateObject("Scripting.FileSystemObject").GetFolder(csFolder).Files
    If 0 = oFile.Size And dblToday = Fix(oFile.DateLastModified) Then oFile.Delete True
Next