3

私は次の状況にあります:この変数を持つPowerShellスクリプト:

$RUBY = "C:\installing\ruby\bin\ruby.exe"
$ARGS = "C:\files\sript.rb $Arg1 $Arg2 $Arg3"

バッチファイルで書くことができます

%RUBY% %ARGS% 

そしてそれは動作します。

しかし、PowerShellでこれを行うにはどうすればよいですか?

rubyのインストールパスが可変であることが重要です。

Start-Processで試してみましたが、スクリプトなしでruby.exeのみが起動しました。

ヒントはありますか?

ありがとう。

4

1 に答える 1

3

まず、 PowerShell によって管理さ$argsれる自動変数であるため、同じ名前で独自の変数を宣言しようとすることは避けます。

PowerShell から変数に格納されたコマンドを呼び出すには、 call 演算子&を使用できます。

& $ruby 'script.rb'

引数のリストを作成する必要がある場合は、それらをまとめて 1 つの文字列にするのではなく、配列を作成することをお勧めします。

$rubyArgs = @('C:\files\script.rb', $Arg1, $Arg2, $Arg3)
& $ruby $rubyArgs

より複雑な引数を渡す必要がある場合は、この回答が役立つ場合があります。

于 2012-09-09T22:50:38.710 に答える