2013-02-19 1 views

Répondre

2

Vous pouvez l'ajouter à la variable PATH. Ensuite, appelez directement avec avec 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

il est bon, mais n'invoque pas de la même session de Powershell ... –

+0

$ env: path = $ env: chemin + "C: \ test \ ruby" cela vous permettra de l'utiliser dans la même session, mais il ne persistera pas dans les autres sessions, vous devrez donc utiliser la méthode dans la réponse pour la faire persister –

0

Je crois que vous êtes après "Splatting". La magie consiste à utiliser l'opérateur @, qui transmettra une liste d'arguments (ou un dictionnaire d'arguments) à la commande sous-jacente. $ psBoundParameters contient les données magiques transmises en splatting.

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

Pour en savoir plus sur Splatting, consultez cet article sur Hey, Scripting Guy

Et, au lieu d'essayer d'exploiter ruby ​​dans PowerShell, vous pouvez juste essayer en utilisant PowerShell comme un framework web (PowerShell Pipeworks)

Questions connexes