6

私のdemo.rb:

puts ARGV.size

ARGV.each do |a|
  puts "Argument: #{a}"
end

結果は、スクリプトの実行方法によって異なります。

> demo.rb foo bar
0

> ruby demo.rb foo bar
2
Argument: foo
Argument: bar

なぜこれが起こるのですか?そして、これで何かできるでしょうか?

編集: すべての返信に感謝します!ここに私の設定:

>assoc .rb
.rb=rbFile

>ftype rbFile
rbFile="c:\ruby-1.8.6\bin\ruby.exe" "%1" %*

だから、それは正しいように見えます。

しかし、私はそれを発見しました

>demo.rb foo bar

次のコマンドラインでプロセスを開始します。

"C:\ruby-1.8.7\bin\ruby.exe" "c:\demo.rb"

.rb は 1.8.6 に関連付けられていますが、1.8.7 が開始されていることに注意してください。

だから私は何か他のものが台無しになっていると思いますか?

4

5 に答える 5

8

コマンド ウィンドウを開きます。

assoc .rb

それはrbFileですか?

ftype rbFile

Ruby.exe の後に "%1" %* が続くことを確認してください

%* が欠落している場合があります。

于 2009-08-27T13:56:05.740 に答える
3
C:\Temp> ftype | grep ルビー
rbFile="c:\opt\ruby\bin\ruby.exe" "%1" %*
rbwFile="c:\opt\ruby\bin\rubyw.exe" "%1" %*
于 2009-08-27T13:56:17.673 に答える
2

ファイルの関連付けを確認してください。特に高度な設定では、「開く」アクションを見てください。アクションの最後に %* があることを確認してください。

この質問はpowershellに関するものですが、本質的に同じ質問なので、私の答えはもう少し詳しく説明する必要があります.

于 2009-08-27T13:53:36.413 に答える
1

ファイルタイプの関連付けでは、引数がルビーインタープリターに渡されないようです。関連付けがどのように表示されるかについては、このセクションを参照してください。

于 2009-08-27T13:55:59.047 に答える
0

Nirsoftのフリーウェア ツール- FileTypesManager%* - を使用して、他の投稿で述べたように不足しているファイルを追加できます。

于 2012-08-01T07:07:31.747 に答える