这是使用C#中的PowerShell打印“Hello World”的最简单方法吗?

时间:2010-12-26 01:30:08

标签: c# powershell ironpython ironruby

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 个答案:

答案 0 :(得分:2)

一般来说,在创建“真正的”PowerShell主机时,您需要向每个管道添加“Out-Default”,然后实现主机API(UI.WriteLine),以便输出显示在某处。< / p>

但对于一个简单的“hello world”...从.Invoke()获取输出是最简单的事情。

我仍然希望PowerShell的未来版本将基于DLR并支持与Iron *语言相同的语法,以便进行简单的调用...但我不知道即使那时你也是这样得到自动输出(我不确定我甚至想要它),因为这基本上需要将当前默认的“ConsoleHost”内置到引擎中(或其他东西)。