我有以下情况: 带有以下变量的powershell脚本:
$RUBY = "C:\installing\ruby\bin\ruby.exe"
$ARGS = "C:\files\sript.rb $Arg1 $Arg2 $Arg3"
在批处理文件中我可以写
%RUBY% %ARGS%
它有效。
但我怎么能在powershell中做到这一点?
重要的是ruby安装路径是可变的。
我尝试使用Start-Process但只启动了ruby.exe,没有脚本。
任何提示?
感谢。
答案 0 :(得分:2)
首先,$args
是由PowerShell管理的automatic variable,因此我会避免尝试使用相同的名称声明您自己的变量。
要从PowerShell调用存储在变量中的命令,可以使用call operator &
:
& $ruby 'script.rb'
如果你需要建立一个参数列表,我建议你创建一个数组,而不是将它们拼凑成一个单独的字符串:
$rubyArgs = @('C:\files\script.rb', $Arg1, $Arg2, $Arg3)
& $ruby $rubyArgs
如果您需要传递更复杂的参数,您可能会发现this answer有用。