我有以下VBScript代码:
Dim returnVal
returnVal = "You did not pass me 4 arguments"
args = WScript.Arguments.Count
If args = 4 Then
returnVal = "The arguements you passed me are " & WScript.Arguments.Item(0) & " " & WScript.Arguments.Item(1) & " " & WScript.Arguments.Item(2) & " " & WScript.Arguments.Item(3)
end if
Run Code Online (Sandbox Code Playgroud)
我想要的是打印"returnVal"的能力,这样如果我输入:
test.vbs 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
它将返回:
The arguments you passed me are 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
要输出到命令控制台窗口,您可以使用以下命令:
WScript.Echo returnVal
Run Code Online (Sandbox Code Playgroud)
要么
WScript.StdOut.WriteLine returnVal
Run Code Online (Sandbox Code Playgroud)
但是你必须使用CScript主机才能工作,例如:
cscript.exe myscript.vbs
Run Code Online (Sandbox Code Playgroud)
WScript是GUI主机,因此不了解标准输入/输出/错误/辅助流.尝试做WScript.StdOut.WriteLine会导致以下错误对话:
--------------------------- Windows Script Host --------------------------- Script: d:\myscript.vbs Line: 12 Char: 1 Error: The handle is invalid. Code: 80070006 Source: (null) --------------------------- OK ---------------------------
在CScript.exe脚本中,您仍然可以使用以下命令弹出GUI消息对话:
Msgbox "Hello World!"
Run Code Online (Sandbox Code Playgroud)
使用WScript.Echo在主机的WScript将显示在一个弹出对话而不是打印到命令行窗口中的消息.
有关更多信息,请参阅
有关WScript和CScript之间的差异以及如何在它们之间切换的更多信息:
Sesame Script Stop and Go(MS TechNet)
Cscript和Wscript之间的区别在于Cscript是脚本主机的命令行版本,Wscript是图形版本.除非您的脚本使用Wscript.Echo命令,否则这种差异并不明显.
| 归档时间: |
|
| 查看次数: |
4317 次 |
| 最近记录: |