2013-02-19 22 views

回答

2

您可以将其添加到PATH变量。然后直接打电话与Ruby.exe:

$path = [Environment]::GetEnvironmentVariable("Path") 
$path = $path + ";"C:\Test\Ruby" 
[Environment]::SetEnvironmentVariable("Path", $path, [System.EnvironmentVariableTarget]::Machine) 
$env:path = $env:path + "C:\test\ruby" 
+0

这是件好事,但PowerShell中的同一会话下不会调用... – 2013-02-19 11:01:35

+0

$ ENV:PATH = $ ENV:路径+ “C:\测试\红宝石” 这将使您可以在同一会话中使用它,但它不会在其他会话中持续存在,因此您必须在答案中使用该方法才能使其保持 – 2013-02-19 11:09:30

0

我相信你是在“Splatting”之后。魔术在于使用@运算符,它会将参数列表(或参数字典)传递给基础命令。 $ psBoundParameters包含在splatting中传递的魔法数据。

function Invoke-Ruby(
    [Parameter(ValueFromRemainingArgumnets=$True)][string[]]$Arguments 
) { 
    c:\Test\Ruby.exe @Arguments 
} 

想了解更多关于泼洒,看看这个文章Hey, Scripting Guy

而且,而不是试图利用PowerShell中的红宝石,你可能只想尝试使用PowerShell作为一个Web框架(PowerShell Pipeworks

相关问题