Это самый простой способ напечатать «Hello World» с помощью PowerShell из C #? - PullRequest
2 голосов
/ 26 декабря 2010
Console.WriteLine(
    PowerShell
      .Create()
      .AddScript("'Hello from PowerShell'")
      .Invoke()[0]
);

Вот IronPython и IronRuby

Python.CreateEngine()
    .Execute("print 'Hello from IronPython'");

Ruby.CreateEngine()
    .Execute("puts 'Hello from IronRuby'");

1 Ответ

2 голосов
/ 03 января 2011

Да.

Вообще говоря, при создании «реального» хоста PowerShell вам потребуется ДОБАВИТЬ «Out-Default» к каждому конвейеру, а затем реализовать API хоста (UI.WriteLine), чтобы выходные данные отображались где-то.

Но для простого "привет мира" ... получить вывод из .Invoke () - самая простая вещь.

Я все еще надеюсь, что будущий выпуск PowerShell будет основан на DLR и будет поддерживать тот же синтаксис, что и языки Iron * для простого вызова ... но я не знаю, если даже тогда вы получит автоматический вывод, подобный этому (я не уверен, что я бы даже этого хотел), потому что для этого в основном потребуется встроенный в движок текущий ConsoleHost по умолчанию (или что-то в этом роде).

...