Vbscript 如何启动VBS的交互式控制台?

Vbscript 如何启动VBS的交互式控制台?,vbscript,console,interpreter,interactive,read-eval-print-loop,Vbscript,Console,Interpreter,Interactive,Read Eval Print Loop,与这个问题非常相似: 我只是希望能够开始输入VBS语句,一次输入一条,并像Python的空闲语句一样立即对它们进行评估。您可以尝试让调试器(cscript//X your.VBS)为您工作,或者启动您自己的项目-可能基于我几年前编写的。它基于(已存档),但有一些增强。本质上,它是一个REPL(读取、执行、打印、循环),使用以下语句: Do While True WScript.StdOut.Write(">>> ") line = Trim(WScript.

与这个问题非常相似:


我只是希望能够开始输入VBS语句,一次输入一条,并像Python的空闲语句一样立即对它们进行评估。

您可以尝试让调试器(
cscript//X your.VBS
)为您工作,或者启动您自己的项目-可能基于我几年前编写的。它基于(已存档),但有一些增强。本质上,它是一个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

如果左(第2行)=“?”,我会添加
,然后再添加line=Replace(第1行“?”,“WScript.Echo”,1,1)
,以模拟VBA IDE的功能。感谢您捕获语法错误。代码示例只是一个最低限度的核心实现,用于演示一般情况下的工作原理。我的真实代码(答案开头的链接)有点复杂,它使用
在给定关键字处打开VBScript帮助文件。我希望它能用“551;”继续行。@js2010真实的东西是这样做的。@Daniel'Dang'Griffith您可以用
分隔多个语句,如
Sub Test():Msgbox(“嘿”):End Sub
但这当然会很快变得笨拙。对于更复杂的行为,您必须离开
WScript.StdIn.ReadLine()
,例如转到
WScript.StdIn.Read(1)
上的循环,该循环会一直读取字符,直到找到一个特殊的“now run all this”关键字。如果你用心去做,那当然是可行的。
@cscript.exe //NoLogo %~dpn0.vbs