检查VBScript语法

时间:2009-08-18 19:06:40

标签: vbscript syntax wsh

用于验证VBScript语法而没有实际运行脚本的任何好的实用程序?

我得到的是,如果我做了类似的事情:

If (year == "2005" && type == 1) Then
...
End If

是否有工具会告诉我'&&&'真的应该是'And'和'==',只是'='?

5 个答案:

答案 0 :(得分:8)

如果您不想运行脚本,因为您不希望它实际执行任何操作,那么我使用的一种方法是在脚本开头添加“WScript.Quit”语句(在Option Explicit之后,如果有的话)然后使用cscript.exe或wscript.exe运行它。

例如:

Option Explicit
WScript.Quit
Dim year
If (year == "2005" && type == 1) Then
    WScript.Echo "Hello"
End If

这不会捕获未定义的变量(如上面的“类型”),但它是一种简单,快速的方法来检查你是否有正确的语法。

答案 1 :(得分:1)

实际上,我认为有一种方法。脚本控件包含类似于HTML VBScript的Eval方法的Execute方法。你可以给它一个字符串,它将进行语法检查。

你仍然可以从这里获得它。 http://www.microsoft.com/downloads/details.aspx?FamilyID=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en

这篇旧的MSDN文章介绍了如何将Scripting添加到您的应用中。 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” 

答案 2 :(得分:0)

Visual Studio(肯定是2005)将进行语法高亮显示,并为已注册的dll提供IntelliSense,这将使您非常接近已验证的语法。

除此之外,它是一种解释性语言,所以你只能这么做。即使是最好的情况也只能保证“它在我的机器上运行”状态。

答案 3 :(得分:0)

我不认为有任何转换器可用,但考虑到vbscript语法相当容易,你可能很容易转换它

答案 4 :(得分:0)

我正在寻找同样的事情。如果您碰巧在asp的上下文中使用vbscript,那么有一些名为http://aspclassiccompiler.codeplex.com/的东西显然会将您的经典asp编译为asp.net。

由于我认为这会产生某种编译时错误,我认为在编译期间会报告语法错误。但是还没试过。