2016-12-09 1 views
1

aufgerufen wird Ich versuche, eine Ruby-Klasse zu schreiben, die ein Datum in Powershell analysiert, jedoch, wenn Sie den Befehl über Ruby-Ausführung, erhalte ich folgende Fehlermeldung:Powershell-Befehl nicht richtig von Ruby

'select' is not a recognized as an internal or external command, operable program or batch file 

Hier ist, wie ich es in Ruby geschrieben habe:

`powershell (Get-Hotfix | sort installedon | select -ExpandProperty installedon -Last 1).ToShortDateString()` 

Irgendwelche Gedanken? Es funktioniert gut, wenn ich es selbst in die Powershell gebe. Ich frage mich, ob es etwas mit der Rohrleitung zu tun hat.

Antwort

2

Backtick (`) in Ruby ruft einen Shell-Befehl, also vergessen Sie, dass Sie es von Ruby aufrufen und einfach alles, was in Ihren Backticks ist an der Eingabeaufforderung setzen und Sie werden den gleichen Fehler sehen. Fix es zuerst dort.

Das Problem ist, dass Rohr | ein Sonderzeichen in der Eingabeaufforderung, und Sie haben Räume in Ihrem Befehl, so sollten Sie den Powershell-Befehl zitiert werden, bevor es zu powershell.exe passieren:

`powershell.exe -Command "(Get-Hotfix | sort installedon | select -ExpandProperty installedon -Last 1).ToShortDateString()"` 
+0

Das tat es, danke! Markierung als beantwortet. –

Verwandte Themen