при выполнении скрипта Powershell из Ruby ошибка «Не удается преобразовать истину в строку» - PullRequest
0 голосов
/ 14 мая 2010

Я пытаюсь выполнить скрипт powershell из Ruby, я ввел следующую команду:

scriptPath =  system('powershell \"C:\\Scripts\\DB_Setup.ps1\"')

Скрипт ruby ​​обрабатывает исключения, когда возникает ошибка, чтобы остановить скрипт, как показано ниже:

rescue => ex
  message = "\nscript on server '#{`hostname`.strip()}' terminated unexpectedly:\n\nMessage: '#{ex.message}"
raise ex

Ошибка вывода: Сценарий на сервере «TestDB1» неожиданно прерван: Сообщение: «невозможно преобразовать истину в строку»

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 мая 2010

Спасибо за ваш быстрый ответ, я знаю, что довольно легко запустить скрипт powershell из ruby, как упомянуто в этой ссылке http://www.hanselman.com/blog/DNRTVScreencastPowershellIsStillShiny.aspx , но по какой-то причине я продолжал получать одно и то же сообщение об ошибке, даже несмотря на то, что запускал очень простой скрипт powershell, такой как ниже:

function Main()
{
  Write-Host "Servername"
}

. Main

Плюс на другой стороне, я попробовал ваше решение выше.

Это очень странная проблема, потратив на нее так много времени, я сделал обходной путь для запуска файла bat с ruby, запускающего скрипт powershell, я знаю, что это не очень хорошая практика ...

0 голосов
/ 14 мая 2010

Невозможно сказать, не видя ваш сценарий. Похоже, ваш скрипт .ps1 выводит логический объект, а Ruby это не нравится. Либо отключите его, либо измените на строку:

PS C:\> (1 -eq 1).gettype().name
Boolean
PS C:\> (1 -eq 1).tostring().gettype().name
String
PS C:\>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...