有什么好的实用程序可以在不实际运行脚本的情况下验证 VBScript 语法吗?
我得到的是,如果我做类似的事情:
If (year == "2005" && type == 1) Then
...
End If
有没有工具可以告诉我'&&'真的应该是'And'和'==',只是'='?
如果您不想运行脚本,因为您不希望它实际执行任何操作,那么我使用的一种方法是在脚本开头放入“WScript.Quit”语句(在选项之后如果有则显式)然后使用 cscript.exe 或 wscript.exe 运行它。
例如:
Option Explicit
WScript.Quit
Dim year
If (year == "2005" && type == 1) Then
WScript.Echo "Hello"
End If
这不会捕获未定义的变量(如上面的“类型”),但它是一种简单、快速的方法来检查您是否拥有正确的语法。
Visual Studio(肯定是 2005 年)将进行语法突出显示,并为您提供已注册 dll 的 IntelliSense,这让您非常接近经过验证的语法。
除此之外,它是一种解释性语言,所以你能做的只有这么多。即使是最好的情况也只能保证“它在我的机器上工作”状态。
不幸的是,我认为没有任何转换器可用,但考虑到 vbscript 语法相当简单,您可能可以相当容易地转换它
其实我觉得是有办法的。脚本控件包括一个类似于 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
关于脚本控制的 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”
我正在寻找同样的东西。如果您碰巧在 asp 的上下文中使用 vbscript,那么有一个叫做http://aspclassiccompiler.codeplex.com/的东西显然可以将您的经典 asp 编译成 asp.net。
由于我相信这会产生某种编译时错误,因此我认为在编译期间会报告语法错误。虽然还没有尝试过。