ehmkey
ehmkey

Reputation: 188

Call ruby script from powershell

i have following situation: a powershell script with this variables:

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

in a batch file i can write

%RUBY% %ARGS% 

and it works.

but how can i do this in powershell?

It is important that the ruby installing path is variable.

I tried it with Start-Process but only ruby.exe was started, without script.

Any hints?

Thanks.

Upvotes: 5

Views: 7550

Answers (1)

Emperor XLII
Emperor XLII

Reputation: 13422

First, $args is an automatic variable managed by PowerShell, so I would avoid trying to declare your own variable with the same name.

To invoke a command stored in a variable from PowerShell, you can use the call operator &:

& $ruby 'script.rb'

If you need to build up the list of arguments, I would recommend creating an array, instead of mashing them all together into a single string:

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

If you need to pass more complicated arguments, you may find this answer useful.

Upvotes: 4

Related Questions