【问题标题】:How to write a custom powershell host [closed]如何编写自定义 Powershell 主机 [关闭]
【发布时间】:2011-05-16 18:24:43
【问题描述】:

类似于 nuget

希望在深入调试器之前寻找任何入门材料

【问题讨论】:

  • 大家好,我有一个相关的问题,当调用 Write-Error 时调用了哪个方法(在 PSHostUserInterface 中)?

标签: c# .net powershell powershell-2.0 nuget


【解决方案1】:

没有伟大的文档。我已经通过实验和示例学到了我所知道的大部分内容。和反思。不是个人的那种,逆向工程的那种。

Joel Bennett 的 PoshConsole 可能是我发现的自定义主机的最佳 OSS 示例。 StudioShell 代码库还包含一个基于 winforms 的简单交互式主机。

托管可能相对简单,具体取决于您所寻找的互动程度。如果只是想运行一些脚本文件,代码就这么简单:

using( var runspace = RunspaceFactory.Create() )
{
  runspace.Open();
  using( var pipeline = runspace.CreatePipeline( "./myscript.ps1" ) )
  {
    Collection<PSObject> results = pipeline.Invoke();
    // ... process the results of running myscript.ps1
  }
}

如果您需要任何类型的交互性,例如从脚本提示用户,那么您在喝 koolaid 和实现大部分 PSHost、PSHostUserInterface 和 PSHostRawUserInterface 合同方面几乎是有限的。同样,在你自己潜入兔子洞之前,我会先看看现有的活生生的例子。

【讨论】:

  • 您没有在此处创建任何 PowerShell 主机。 -- 只是一个运行空间。 -- 即你没有在任何地方实现PSHost
【解决方案2】:
【解决方案3】:

我有一系列专门针对此的博文。

Here 是第一个。

我还实现了一个调试器。我很乐意回答您可能提出的问题。我的博客上的联系信息。

另外,here 是一个使用 API 实际实现调试器的项目……这是我发现任何已发布代码的唯一地方。

【讨论】:

  • 刚刚意识到另一个答案中的第一个链接与我给出的相同。我阅读了 MSDN 并停了下来。 :-)
【解决方案4】:

您可以在我构建自己的 PowerShell 的博客下找到,该 PowerShell 解释脚本而不显示任何窗口。

Blog from Leporelo

这确实是您需要的几行代码,也是 PowerShell SDK 的快捷方式。

the shell responding my own need(对不起,法语)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 2012-04-24
    相关资源
    最近更新 更多