为什么这个VBScript会给我一个错误?

Jos*_*ons 15 vbscript

我将此VBScript脚本保存为本地计算机为c:\ test.vbs:

WScript.StdOut.WriteLine "This is a test"
Run Code Online (Sandbox Code Playgroud)

当我从命令行运行它时,我收到此错误:

---------------------------
Windows Script Host
---------------------------
Script: C:\test.vbs
Line:   1
Char:   1
Error:  The handle is invalid. 
Code:   80070006
Source:     (null)

---------------------------
OK   
---------------------------
Run Code Online (Sandbox Code Playgroud)

我在Windows Vista(SP1)和Windows XP Pro(SP3)下得到了这个.

Sco*_* M. 34

此链接可以帮助您:

http://www.tech-archive.net/Archive/Scripting/microsoft.public.scripting.vbscript/2004-07/0979.html

看起来句柄StdOut仅在使用控制台主机(cscript.exe)而不是窗口主机(wscript.exe)时可用.如果您希望代码有效,则必须使用cscript.exe它来运行它.

该帖子还描述了如何更改默认行为以使用cscript而不是wscript运行脚本.


Jos*_*ons 8

正如接受的答案中的文章所描述的那样,当我从命令提示符调用它时,我的脚本工作如下:

cscript test.vbs
Run Code Online (Sandbox Code Playgroud)

您还可以更改默认脚本宿主,以便每次都不需要调用cscript.执行此操作后,原始命令无需修改.

cscript //h:cscript //s 
Run Code Online (Sandbox Code Playgroud)

您可以使用以下命令恢复原始行为:

cscript //h:wscript //s 
Run Code Online (Sandbox Code Playgroud)

谢谢!!