1

我是 VBS 的新手,我正在尝试在 Windows 中的 UAC 上开始 - 一种做事的意愿,反过来,学习。

我不明白为什么我在最后一个 End If 之前的行中不断出现语法错误

如果您能提供帮助,我将不胜感激!

CurPass = ReadIni("C:\Program Files\User Account Control\ident.ini", "pass", "pass")
InpPass = inputbox("Please enter your current password:")
If InpPass = CurPass Then
NewPass = inputbox("Please enter your new password")
    if NewPass=CurPass Then 
        KpPass=msgbox("Your new password is the same as your old password. Keep old password?",4+32,"UAC")
        if KpPass=7 Then MsgBox("Please try again")
        end if
    Else 
        RNewPass = inputbox("Please re-enter your new password")
    end if
    if RNewPass=NewPass then 
        WriteIni "C:\Program Files\User Account Control\ident.ini", "pass", "Pass", NewPass
    else msgbox("Your new passwords do not match. Try again.")
    end If
else msgbox("Incorrect password")
End if
4

2 回答 2

1

没有 If .. 那么对于你的最后一个 Else .. End If。如果您使用了适当的缩进,这将立即显而易见。

更新:以上诊断错误。

我想你想要这个结构:

CurPass = ""
InpPass = ""
If InpPass = CurPass Then
   NewPass = ""
   If NewPass = CurPass Then
      KpPass = ""
      If KpPass = "7" Then
         KpPass = "4711"
      End If
   Else
      RNewPass = ""
   End If
   If RNewPass = NewPass Then
      RNewPass = "xx"
   Else
      RNewPass = "yy"
   End If
Else
   CurPass = "whatamess"
End If

然后,当您编写以下内容时,VBScript 迷失了方向:

if KpPass=7 Then MsgBox("Please try again")
end if

你可以有'短如果'像

If Condition Then OneStatementAction

但是应该没有End If。这有点像在其他类似 C 的语言中为单行/语句条件省略 {}。那就是:最好避免。

于 2012-11-04T19:02:12.517 回答
-2

End IF 是一个表达式,告诉 VB.NET 你完成了你的条件。

每个 IF 都可能以 END IF 结束

所以你的代码可能是这样的:

If textbox1.text = "Cat" Then

   Do something
Else
   Do not do that thing
End If

再次检查您的代码并避免编写 End IF,然后查看:

If textbox1.text = "Cat" Then

   Do something
End IF

Else
   Do not do that thing
End If

// 这行不通!一个条件中不能有多个 IF:

这是不正确的:

IF something Then
  IF blabla bla then
Else
Endif

请参阅此处的链接,您可以在其中学习如何使用 therse:http: //msdn.microsoft.com/en-us/library/752y8abs.aspx

于 2013-12-29T13:33:33.797 回答