【问题标题】:VB script logic errorVB脚本逻辑错误
【发布时间】:2011-05-04 01:52:50
【问题描述】:

我有以下来自 vbscript 的 sn-p 代码:

            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

我已经对代码进行了多次梳理,但似乎无法弄清楚为什么它会给我这个错误。是的,我也尝试使用“End”而不是“End If”

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    ElseIf 的结构是:

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

    【讨论】:

      【解决方案2】:

      你有 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 相同的内容 - 只有当您的@ 987654327@ 语句都包含在同一行中。

      【讨论】:

        猜你喜欢
        • 2020-09-08
        • 2011-04-26
        • 2014-01-14
        • 2012-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        相关资源
        最近更新 更多