人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【プログラミング/Ruby】Windows環境上(Win2000)で、Rubyから実行ファイル(exe形式)に引数を渡して呼び出すにはどうすれば良いでしょうか。できれば簡単なサンプルを付して教えて下さい。お願いします。

●質問者: polyamid
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:exe Ruby Windows ファイル プログラミング
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● dplusplus
●100ポイント

http://www.ruby-lang.org/ja/man/?cmd=view;name=%C1%C8%A4%DF%B9%F...

組み込み関数 - Rubyリファレンスマニュアル

URLは公式のRubyリファレンスWikiです。

Rubyには外部の関数を呼び出す組み込み関数execが存在します。

サンプルは以下のような感じです。

1.適当な外部プログラムを調達します。ここでは引数を表示するCを使ったプログラムを作成することにしてみます。(コンパイルしてarg.exeとしておく)

#include <stdio.h>

int main(int argc, char *argv[]){

int i;

for(i=1; i<argc; ++i)

printf("argv[%d] #=> %s¥n", i, argv[i]);

return 0;

}

実行例:

arg.exe foo bar

argv[1] #=> "foo"

argv[2] #=> "bar"

2. rubyスクリプトからarg.exeを起動します。(invoke.rbとする)

exec("arg.exe", "hoge", "moge")

実行例:

ruby invoke.rb

argv[1] #=> "hoge"

argv[2] #=> "moge"

外部プログラムのパスは相対パス、絶対パス、環境変数PATHから探す、のどれでも使えるようです。

また、パスの区切り文字は/でも¥でもよいみたいです。(後者の場合ちゃんとエスケープすること)

◎質問者からの返答

分かりやすい回答、ありがとうございます。


2 ● きゃづみぃ
●100ポイント

http://www.ruby-talk.org/cgi-bin/scat.rb/ruby/ruby-list/2709...

基本的には

system(’c:¥hoge space¥uge.exe arg1 arg2’)

というように記述しますが、

中に スペースが入っている場合は、工夫が必要です。

◎質問者からの返答

おお、別パターンの実現方法。ありがとうございます^^

回答1,2での挙動の違い等は自分で調べてみることにします。

お二人とも、ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ