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