Ошибка логики скрипта VB - PullRequest
0 голосов
/ 03 мая 2011

У меня есть следующий фрагмент кода из 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 голосов
/ 03 мая 2011

У вас есть 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 - вы можете сделать это только если ваш * Все операторы 1009 * содержатся в одной строке.

0 голосов
/ 03 мая 2011

Структура для ElseIf:

If c1 Then
   ..
ElseIf c2 Then <-- Not Else
   ..
ElseIf c3 Then
   ..
Else <-- last to catch all else
   --
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...