バックティック環境は二重引用符のようなものなので、エスケープにはバックスラッシュが使用されます。さらに、Ruby はスペースをコマンドライン引数の区切りとして解釈するため、全体を引用する必要があります。
`"C:\\Documents and Settings\\test.exe"`
もう 1 つのオプションはsystem
、2 番目の引数を使用して強制することです。複数の引数を取得する場合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