Vbscript 如果文件大小超过20MB并指定了文件名,则删除特定文件

Vbscript 如果文件大小超过20MB并指定了文件名,则删除特定文件,vbscript,Vbscript,抛出错误请建议我相信,您希望通过循环删除文件夹中的所有文件,这些文件的大小大于20MB Set oFSO = CreateObject("Scripting.FileSystemObject") sDirectoryPath = "C:\Users\Desktop\z\" Set oFolder = oFSO.GetFolder(sDirectoryPath) Set oFileCollection = oFolder.Files If oFile.Size > 20000000 A

抛出错误请建议

我相信,您希望通过循环删除文件夹中的所有文件,这些文件的大小大于20MB

Set oFSO = CreateObject("Scripting.FileSystemObject")

sDirectoryPath = "C:\Users\Desktop\z\"

Set oFolder = oFSO.GetFolder(sDirectoryPath)
Set oFileCollection = oFolder.Files

If oFile.Size > 20000000 And ofile.Filename = "nor.dotm Then
  oFile.Delete(True)
End If
如果只想删除特定文件

Set of so=CreateObject(“Scripting.FileSystemObject”)


你发布的代码中有几个错误,其中一些是Alex K.已经犯过的

  • 引用文件名后缺少双引号
  • 从未将任何文件对象指定给变量
    oFile
  • 枚举目录中的文件,但从不迭代集合
  • 保存文件对象名称的属性是,而不是
    Filename
如果只想检查给定文件夹中的特定文件是否超过给定大小,则应使用
GetFile
,而不是遍历文件夹中的所有文件,只需检查文件大小:

sDirectoryPath = "C:\Users\Desktop\z\"
FileName = "MyFile.Txt"

'set oFolder = oFSO.GetFolder(sDirectoryPath)

set ofile = oFSO.GetFile(sDirectoryPath & FileName)      


If oFile.Size > 20000000 and ofile.name ="nor.dotm" Then

   oFile.Delete(True)

End If
如果要检查具有特定扩展名的文件,则需要实际迭代文件夹中的文件:

Set fso = CreateObject("Scripting.FileSystemObject")

dir = "C:\Users\Desktop\z"

Set f = fso.GetFile(fso.BuildPath(dir, "nor.dotm"))

If f.Size > 20000000 Then
  f.Delete True
End If

文件从不声明或分配给任何东西。如果要对特定文件执行此操作,请使用GetFile而不是GetFolder。nor.dotm周围缺少引号。您能帮我找出文件名或.dotm两者都可以吗?请在询问有关引发错误的代码时始终包含实际错误消息。如果大小20mb且扩展名或文件名匹配,则删除该文件,在.log文件中写入日志特定文件已删除谢谢您的支持
Set fso = CreateObject("Scripting.FileSystemObject")

dir = "C:\Users\Desktop\z"

Set f = fso.GetFile(fso.BuildPath(dir, "nor.dotm"))

If f.Size > 20000000 Then
  f.Delete True
End If
Set fso = CreateObject("Scripting.FileSystemObject")

dir = "C:\Users\Desktop\z"

For Each f In fso.GetFolder(dir).Files
  If f.Size > 20000000 And fso.GetExtensionName(f) = "dotm" Then
    f.Delete True
  End If
Next