Reputation: 188
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
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