有没有好的工具可以在不运行脚本的情况下验证VBScript语法?
我的意思是,如果我做了这样的事情:
If (year == "2005" && type == 1) Then
...
End If
有没有工具可以告诉我'&&'应该改为'And','=='应该改为'='?
Option Explicit
WScript.Quit
Dim year
If (year == "2005" && type == 1) Then
WScript.Echo "Hello"
End If
这种方法无法捕获未定义的变量(比如上面的“type”),但它是一种简单、快速的检查你是否有正确语法的方式。
我正在寻找同样的东西。如果你恰好在ASP上下文中使用VBScript,那么有一种叫做http://aspclassiccompiler.codeplex.com/的东西,可以将你的经典ASP编译成ASP.NET。
由于我认为这会产生某种编译时错误,所以我认为语法错误将在编译期间报告。虽然还没有尝试过。
实际上,我认为有一种方法。脚本控件包括一个类似于HTML VBScript的Eval方法的Execute方法。您可以给它一个字符串,它会对其进行语法检查。
您仍然可以从这里获取。 http://www.microsoft.com/downloads/details.aspx?FamilyID=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en
这篇旧的MSDN文章描述了如何将脚本添加到您的应用程序中。 http://msdn.microsoft.com/en-us/magazine/cc302278.aspx
Script Control的MSDN文章 http://msdn.microsoft.com/en-us/library/aa227633(VS.60).aspx
像这样的东西..(不确定实例化)
Dim ScriptControl1 as New MSScript
ScriptControl1.ExecuteStatement “If (year == "2005" && type == 1) Then..End If”
Visual Studio(2005肯定可以)将为已注册的dll提供语法突出显示并为您提供IntelliSense,这使您非常接近经过验证的语法。
除此之外,它是一种解释性语言,因此您能做的事情有限。即使在最好的情况下,也只能保证“它在我的机器上运行正常”的状态。
很遗憾,我不认为有任何可用的转换器,但考虑到VBScript语法相当简单,您可能可以相对容易地进行转换。