检查 VBScript 语法

8

有没有好的工具可以在不运行脚本的情况下验证VBScript语法?

我的意思是,如果我做了这样的事情:

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

有没有工具可以告诉我'&&'应该改为'And','=='应该改为'='?

5个回答

9
如果你不想运行脚本,因为你不希望它实际执行任何操作,那么我使用的一个方法是在脚本开头(如果有Option Explicit,则之后)放置"WScript.Quit"语句,然后使用cscript.exe或wscript.exe运行它。
例如:
Option Explicit
WScript.Quit
Dim year
If (year == "2005" && type == 1) Then
    WScript.Echo "Hello"
End If

这种方法无法捕获未定义的变量(比如上面的“type”),但它是一种简单、快速的检查你是否有正确语法的方式。


0

我正在寻找同样的东西。如果你恰好在ASP上下文中使用VBScript,那么有一种叫做http://aspclassiccompiler.codeplex.com/的东西,可以将你的经典ASP编译成ASP.NET。

由于我认为这会产生某种编译时错误,所以我认为语法错误将在编译期间报告。虽然还没有尝试过。


0

实际上,我认为有一种方法。脚本控件包括一个类似于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” 

0

Visual Studio(2005肯定可以)将为已注册的dll提供语法突出显示并为您提供IntelliSense,这使您非常接近经过验证的语法。

除此之外,它是一种解释性语言,因此您能做的事情有限。即使在最好的情况下,也只能保证“它在我的机器上运行正常”的状态。


0

很遗憾,我不认为有任何可用的转换器,但考虑到VBScript语法相当简单,您可能可以相对容易地进行转换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接