2014-02-25 29 views
0

我試圖在Ruby中運行一些需要運行外部Ruby文件/程序的測試。在Windows中從Ruby運行外部Ruby程序

在Windows控制檯我使用IRB運行Ruby程序調用位於此同一目錄中的另一個這樣的Ruby程序:

irb(main):018:0> puts system "ruby1.8 tmp.rb" 
false 
=> nil 

然而,它始終返回false。

我該如何解決這個問題。

我在Windows上安裝了幾個Ruby版本,我需要運行在命令行上選擇的特定版本的Ruby。

我已經嘗試將可執行文件ruby.exe重命名爲ruby1.8.exe,它可以從命令行正常工作,但不能與「系統」命令一起使用。

Multiple classes of the same name in Ruby

+0

你試過放系統 「紅寶石tmp.rb」? –

+1

顯示'tmp.rb'文件的內容 –

+1

對我來說,這是錯誤的方法。通常你會做以下事情:需要或加載外部Ruby程序;調用通過調用外部調用的方法(無參數)。這將一直工作。 – mliebelt

回答

2

docs

系統如果命令給出零個退出狀態,false爲 非零退出狀態返回true。

使用反引號,而不是system捕獲輸出:

output = `ruby tmp.rb` 
p output