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

首先,$args是一个由 PowerShell 管理的自动变量,所以我会避免尝试用相同的名称声明您自己的变量。

要从 PowerShell 调用存储在变量中的命令,可以使用调用运算符&

& $ruby 'script.rb'

如果您需要建立参数列表,我建议您创建一个数组,而不是将它们全部混合成一个字符串:

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

如果您需要传递更复杂的参数,您可能会发现此答案很有用。

于 2012-09-09T22:50:38.710 回答