2013-08-29 35 views
0

我想從一個ruby腳本(Ruby 1.9.3)中運行一個名爲pdfgrep的程序,該腳本從Git Bash MINGW32)在Windows 7上運行。對pdfgrep的調用在反引號內,我想要使用ruby方法得到結果並清理它。

觀看this answerthis answera related SO question之後,我想我應該ENV['PATH']變量從Windows風格的路徑是在我的shell默認轉換爲UNIX路徑。

(第3行)所以我用一個簡單的puts測試了$LOAD_PATH的內容,這似乎是工作。

script.rb

#!/usr/bin/env ruby 

ENV['PATH'].split('\\').join(File::SEPARATOR).split(';').inject($LOAD_PATH) {|lp,v| lp << v } 

# The intention is to replace puts with a variable assignment 
puts `pdfgrep -i "(issued|Total)" *.pdf` 

錯誤運行,這是當我得到:

./script.rb:6:in ``': No such file or directory - pdfgrep -i "(issued|Total)" *.pdf (Errno::ENOENT) 

當我提供完整的路徑 - c:/Users/cjross/bin/pdfgrep -i [etc...] - 沒有錯誤消息。它仍然不會輸出我期望的內容,但它不會引發錯誤。

基本上我很樂意能夠從我的shell的$PATH ruby​​中調用任何程序。任何意見,將不勝感激。

編輯 謝謝@konsolebox糾正我不正確的引用。不幸的是仍然有路徑問題。

回答

0
puts `pdfgrep -i '(issued|Total)' "*.pdf"` 

我覺得應該工作作爲

puts `pdfgrep -i "(issued|Total)" *.pdf` 
+0

不幸的是,仍然引發了'沒有這樣的文件或directory'錯誤,但是你我的報價修訂工作至少讓我得到了想要的輸出(儘管有完整的路徑到'pdfgrep')。謝謝!我將把它列入我的問題。 – cjross

相關問題