From: "岩崎 弘孝" Date: 2004-03-17T10:18:13+09:00 Subject: [ruby-list:39378] windowsにおけるsystem関数の挙動について 岩崎と申します。 Windows環境でのsystem関数の挙動について教えてください。 == 処理すべき内容 path内にhoge.batがありこれを起動するためにsystem関数を利用する == テストコード %ruby -e "system('hoge *.*')"         <== これは`xxx`にすると        No such file or directory - delw *.* (Errno::ENOENT) と表示される %ruby -e "system('hoge.bat *.*')"       <== これはhoge.batが実行されます。 == 環境 NT4SP6/W2KSP3 ruby 1.8.1 (2003-12-25) [i386-mswin32] == お聞きしたい点  1.なぜhode.batと指定しなければ起動しないのか 2.リファレンスマニュアルにある    「shell のメタ文字 (* ? {} [] <> () ~ & | \ $ ; ' ` " \n)を含む場 合、    shell 経由で実行されます」    とあるのはcmd.exeを利用する場合も同じメタ文字かどうか  3.常にシェル経由で実行する場合の標準的な方法    (この例の場合*などのメタ文字を含まない状況を想定)  ちなみに perl -e "system('hoge *.*');"は期待どおり動作します。  また、最初から.batと分かっている場合はスクリプト内に記載しすが、  ユーザ入力値をそのまま渡して起動する場合も想定しているため、  cmd.exeと同様な動きを期待しています。 == Iwasaki == Email: ih000667@mb.taiyokogyo.co.jp