倒引号环境就像是双引号,让反斜线用于逃跑。此外,将Ruby解释空格作为分隔命令行参数,所以你需要引用整个事情:
`"C:\\Documents and Settings\\test.exe"`
另一种选择是使用system
,迫使第二个参数。如果system
获得多于一个参数,它把第一个参数的路径要执行的命令,你不需要引用命令:
system('C:\Documents and Settings\test.exe','')
注意使用单引号,所以我们没有逃避反斜杠。
当然,这不会让你的标准输出/错误,所以如果你是关于Ruby 1.9.2,您可以使用赫然得心应手Open3
库,它的工作原理是system
,但给你有关的更多信息过程中你只是跑:
require 'open3'
stdout,stderr,status = Open3.capture3('C:\Documents and Settings\test.exe','')
puts stdout # => string containing standard output of your command
puts stderr # => string containing standard ERROR of your command
if status.success?
puts "It worked!"
else
puts "OH NOES! Got exit code #{status.exitstatus}"
end
我假设你的bean,而不是“单引号”“反引号”,但我不会去,除非你确认编辑您的问题。 – davetron5000 2011-08-25 12:30:05