倒引號環境就像是雙引號,讓反斜線用於逃跑。此外,將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