VBS If Then Else

时间:2012-11-04 18:39:20

标签: vbscript

我是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

2 个答案:

答案 0 :(得分:1)

没有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

你可以拥有像

这样的'短ifs'
If Condition Then OneStatementAction

然后应该没有End If。对于其他C语言中的单行/语句条件,省略{}有点像。那就是:更好地避免。

答案 1 :(得分:-1)

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:

这是incorect:

IF something Then
  IF blabla bla then
Else
Endif

在这里可以看到一个链接,您可以在其中学习如何使用therse: http://msdn.microsoft.com/en-us/library/752y8abs.aspx