VB脚本逻辑错误

时间:2011-05-03 16:57:52

标签: vbscript

我有以下vbscript代码片段:

            For Each Modified in Files
                If IsEmpty(file1) or IsNull(file1) Then
                    file1 = Modified
                Else
                    file2 = Modified
                    If hDisk.FreeSpace > 900000000000 Then Exit For
       ERROR HERE-->ElseIf file2.DateLastModified < file1.DateLastModified And DateDiff("D", file2.DateLastModified, Now) > 7 Then file2.Delete
                    ElseIf file1.DateLastModified < file2.DateLastModified And DateDiff("D", file1.DateLastModified, Now) > 7 Then 
                        file1.Delete
                        file1 = Modified
                    End If
                    End If
                End If
            Next

当我尝试编译脚本时,我收到一个错误,我错过了“结束”,更具体地说是预期'结束'代码800A03F6

我已经多次梳理了代码,似乎无法弄清楚为什么它会给出我的错误。是的,我也试过使用'结束'而不是'结束如果'

2 个答案:

答案 0 :(得分:0)

ElseIf的结构是:

If c1 Then
   ..
ElseIf c2 Then <-- Not Else
   ..
ElseIf c3 Then
   ..
Else <-- last to catch all else
   --
End If

答案 1 :(得分:0)

你有3 End If个,但你只是开始2 If。如果我正确阅读,您可以执行以下操作:

            For Each Modified in Files
                If IsEmpty(file1) or IsNull(file1) Then
                    file1 = Modified
                Else
                    file2 = Modified
                    If hDisk.FreeSpace > 900000000000 Then
                        Exit For
                    ElseIf file2.DateLastModified < file1.DateLastModified And DateDiff("D", file2.DateLastModified, Now) > 7 Then
                        file2.Delete
                    ElseIf file1.DateLastModified < file2.DateLastModified And DateDiff("D", file1.DateLastModified, Now) > 7 Then 
                        file1.Delete
                        file1 = Modified
                    End If
                End If
            Next

最重要的是,如果您打算使用ElseIf,则无法在Then之后添加与Then相同的内容 - 您可以只有当你的If声明全部包含在同一行时才会这样做。