如果没有符合条件的文件,如何使此VBScript终止?

如果没有符合条件的文件,如何使此VBScript终止?,vbscript,Vbscript,我已经修改了一个现有的脚本,以满足我的需要,但它一直在运行 基本上,脚本会检查指定路径下的文件夹,并删除文件扩展名为.done的任何超过7天的文件 我无法让它在重命名所有符合条件的文件后终止。有什么想法吗 Set args = WScript.Arguments For Each arg In args t = Split(arg, "=") If IsNumeric(t(1)) Then v = arg Else v = t(0) & "=" &

我已经修改了一个现有的脚本,以满足我的需要,但它一直在运行

基本上,脚本会检查指定路径下的文件夹,并删除文件扩展名为
.done
的任何超过7天的文件

我无法让它在重命名所有符合条件的文件后终止。有什么想法吗

Set args = WScript.Arguments

For Each arg In args
  t = Split(arg, "=")
  If IsNumeric(t(1)) Then
    v = arg
  Else
    v = t(0) & "=" & """" & t(1) & """"
  End If
  Execute (v)
Next

FileTooOld = DateAdd("d", -7, Now())

Set fso = WScript.CreateObject ("Scripting.FileSystemObject")
Set objShell = CreateObject("WScript.Shell")

Do Until False
  ShowSubFolders fso.GetFolder("C:\Users\Redacted\Desktop\Test")
Loop

Sub ShowSubFolders(Folder)
  WScript.Echo "* " & Folder & "\" '& subfolder.name
  Set files = Folder.Files
  On Error Resume Next
  For Each file In files
    If LCase(Right(file.Name, 5)) = ".done" Then
      realfile = folder & "\" & Left(file.Name, Len(file.Name) - 5)

      If Not fso.FileExists(realfile) And file.DateLastModified < FileTooOld Then
        WScript.Echo realfile & ".done"
        file.Delete
      End If
    End If
  Next
  On Error Goto 0
  For Each Subfolder In Folder.SubFolders
    WScript.Echo "** " & subfolder & "\" '& subfolder.Name
    ShowSubFolders Subfolder
  Next
End Sub
Set args=WScript.Arguments
对于args中的每个arg
t=拆分(arg,“=”)
如果是数字(t(1)),则
v=arg
其他的
v=t(0)和“=”和“&t(1)和”
如果结束
执行(五)
下一个
FileTooOld=DateAdd(“d”,-7,Now())
设置fso=WScript.CreateObject(“Scripting.FileSystemObject”)
设置objShell=CreateObject(“WScript.Shell”)
直到错误为止
ShowSubFolders fso.GetFolder(“C:\Users\redact\Desktop\Test”)
环
子文件夹(文件夹)
WScript.Echo“*”&文件夹&“\”&子文件夹.name
Set files=Folder.files
出错时继续下一步
对于文件中的每个文件
如果LCase(Right(file.Name,5))=“.done”,则
realfile=folder&“\”&Left(file.Name,Len(file.Name)-5)
如果不存在fso.FileExists(realfile)和file.datelastmedited
根据我的说法,下面的循环是不必要的。循环部分已在接头内部处理

Do Until False        
    ShowSubFolders fso.GetFolder("C:\Users\Redacted\Desktop\Test")
loop
与上面的循环不同,只需调用子ShowSubFolders并像下面那样对循环进行注释,您的问题就会得到解决。请让我知道这是否有帮助

'Do Until False        
    ShowSubFolders fso.GetFolder("C:\Users\Redacted\Desktop\Test")
'loop

您在一个无限循环中不断调用
ShowSubFolders()
Do-Until False…循环
)。如果希望脚本在执行清理后终止,请删除循环并只调用该过程一次。这似乎工作得很好。非常感谢您的帮助。:)