2016-12-09 6 views
1

Я пытаюсь написать класс рубина, который анализирует дату в PowerShell, однако при выполнении команды с помощью Ruby, я получаю следующее сообщение об ошибке:Powershell команда не правильно называется Руби

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

Вот как это у меня написано на Ruby:

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

Любые мысли? Он отлично работает, когда я сам ввожу его в powershell. Мне интересно, имеет ли это что-то общее с трубопроводом.

ответ

2

Backtick (`) в Ruby вызывает команду оболочки, поэтому забудьте, что вы вызываете ее из Ruby и просто поместите все, что находится в ваших backticks в командной строке, и вы увидите ту же ошибку. Исправьте его первым.

Проблема заключается в том, что труба | это специальный символ в командной строке, и у вас есть пробелы в вашей команде, так что вы должны быть со ссылкой на команду PowerShell, прежде чем передать его powershell.exe:

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

Это сделал это, спасибо! Маркировка как ответ. –

Смежные вопросы