如何使用Powershell脚本在PS中将我的二进制可执行文件作为cmdlet?

时间:2013-02-19 10:41:26

标签: powershell cmdlet

我有一个名为ruby.exe的二进制可执行文件,位于

C://test//ruby.exe

如何使用powershell脚本将其设为cmdlet,以便在我的powershell脚本中,我可以直接运行ruby?

2 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

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

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

要了解有关Splatting的更多信息,请查看Hey, Scripting Guy

上的这篇文章

而且,您可能只想尝试将PowerShell用作Web框架(PowerShell Pipeworks

,而不是尝试在PowerShell中使用ruby。