Call ruby script from powershell

powershell, ruby

Solution

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.

Problem

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.

Original source

Related problems