【发布时间】:2013-02-11 19:13:51
【问题描述】:
与这个问题非常相似:
How can I start an interactive console for Perl?
我只想能够开始输入 VBS 语句,一次一个,并立即评估它们,就像 Python 的 IDLE 一样。
【问题讨论】:
标签: vbscript console interpreter interactive read-eval-print-loop
与这个问题非常相似:
How can I start an interactive console for Perl?
我只想能够开始输入 VBS 语句,一次一个,并立即评估它们,就像 Python 的 IDLE 一样。
【问题讨论】:
标签: vbscript console interpreter interactive read-eval-print-loop
几年前我写了this。它基于this blog post(存档here),但有一些改进。本质上它是一个使用Execute 语句的 REPL(读取、执行、打印、循环):
Do While True
WScript.StdOut.Write(">>> ")
line = Trim(WScript.StdIn.ReadLine)
If LCase(line) = "exit" Then Exit Do
On Error Resume Next
Execute line
If Err.Number <> 0 Then
WScript.StdErr.WriteLine Err.Description
End If
On Error Goto 0
Loop
我通常以同名的批处理文件(即“vbs.vbs”和“vbs.bat”)开始,如下所示:
@cscript.exe //NoLogo %~dpn0.vbs
【讨论】:
If Left(line, 2) = "? " Then line = Replace(line, "? ", "WScript.Echo ", 1, 1),以模仿 VBA IDE 的功能。
? 在给定关键字处打开 VBScript 帮助文件。
: 分隔多个语句,例如Sub Test() : Msgbox("Hey") : End Sub,但当然这很快就会变得笨拙。对于更复杂的行为,您必须从 WScript.StdIn.ReadLine() 移开,例如转到 WScript.StdIn.Read(1) 上的循环,该循环不断读取字符,直到找到特殊的“现在运行所有这些”关键字。如果你下定决心,当然是可行的。
您可以尝试让调试器 (cscript //X your.vbs) 为您工作,或者开始您自己的项目 - 可能基于 these (first 3?) proposals
【讨论】: