Ruby脚本作为变量在VBScript中的输出
我需要在VBScipt中运行ruby脚本。我有一个密码:Ruby脚本作为变量在VBScript中的输出,ruby,vbscript,Ruby,Vbscript,我需要在VBScipt中运行ruby脚本。我有一个密码: Set newobj = CreateObject("WScript.shell") vbsInterpreter = "cscript.exe" nRet = newobj.Run("%comspec% /c c:\\Program Files (x86)\\Puppet Labs\\Puppet\\sys\\ruby\\bin\\ruby.exe c:\\scr.rb") ruby脚本的输出是put“Directory is emp
Set newobj = CreateObject("WScript.shell")
vbsInterpreter = "cscript.exe"
nRet = newobj.Run("%comspec% /c c:\\Program Files (x86)\\Puppet Labs\\Puppet\\sys\\ruby\\bin\\ruby.exe c:\\scr.rb")
ruby脚本的输出是put“Directory is empty”
,现在我希望nRet是字符串“Directory is empty”。运行我得到的VBScript
C:>cscript test.vbs Microsoft(R)Windows脚本主机版本5.6
版权所有(C)微软公司1996-2001。版权所有
0
为什么是0?如何使ruby脚本输出为VBScript输出?您的问题(尤其是子问题“为什么0”)表明您更喜欢代码(复制而不理解)而不是建议(如阅读文档或思考变量(名称))。
下面是代码:
type ..\rb\44245994.rb
puts "Why didn't you study the docs for .RUN (and .Exec)?"
5.times do
puts "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
end
ARGV.each {|a| p a}
puts "Done."
exit 14
44245994.vbs:
Option Explicit
Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject")
Dim sRuby : sRuby = "C:\Program Files\Ruby-2.1\bin\ruby.exe"
Dim oSH : Set oSH = CreateObject("WScript.Shell")
Dim sCmd : sCmd = Join(Array( _
qq(sRuby) _
, qq(goFS.GetAbsolutePathName("..\rb\44245994.rb")) _
, "pi" _
, qq("1, 2, 3") _
))
WScript.Echo "sCmd:", sCmd
WScript.Echo "Stdout of execee:" , oSH.Exec(sCmd).StdOut.ReadAll()
WScript.Echo "exit code of runee:", oSH.Run(sCmd, 0, True)
Function qq(s)
qq = """" & s & """"
End Function
输出:
cscript 44245994.vbs
sCmd: "C:\Program Files\Ruby-2.1\bin\ruby.exe" "E:\work\proj\soa\44245994\rb\44245994.rb" pi "1, 2, 3"
Stdout of execee: Why didn't you study the docs for .RUN (and .Exec)?
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
"pi"
"1, 2, 3"
Done.
exit code of runee: 14
谢谢,但我只使用这部分代码;)<代码>选项显式Dim goFS:Set goFS=CreateObject(“Scripting.FileSystemObject”)Dim sRuby:sRuby=“c:\Program Files(x86)\Puppet Labs\Puppet\sys\ruby\bin\ruby.exe”Dim oSH:Set oSH=CreateObject(“WScript.Shell”)oSH.Exec(“”c:\Program Files(x86)\Puppet Labs\Puppet\sys\ruby\bin\ruby.exe“”“”c:\src.rb“”).StdOut.ReadAll()