2011-05-03 64 views
0

,我有以下從一個VBScript的代碼片段:VB腳本邏輯錯誤

  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

我已經梳理了幾遍代碼,似乎無法弄清楚爲什麼它會給我這個錯誤。是的,我也嘗試過使用「結束」,而不是「結束如果」

回答

0

的elseif的結構是:

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

你有3 End If的,但你纔剛剛開始2 If's。如果我讀這個權利,你可以做到以下幾點:

  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聲明全部包含在同一行中,則只能這樣做。