【问题标题】:How to Check if PowerShell is Ready?如何检查 PowerShell 是否准备就绪?
【发布时间】:2016-04-07 01:08:08
【问题描述】:

我有一个简单的Process.Start 命令,它将powershell 路径作为输入

Process.Start(powerShellPath);
Thread.Sleep(5000); //wait till loading is done, typically a couple of seconds

但是现在我使用Thread.Sleep 等到powershell 完全准备好(准备好我的意思是:您可以输入/发送某些内容并且它是响应式的,但是我们可以在输入/发送任何内容之前知道这一点到powershell)。

除了等待之外,还有什么方法可以知道powershell 是否准备就绪——也就是说,不是通过基于时间的逻辑,而是通过基于事件的逻辑?

【问题讨论】:

  • @PetSerAl 我的意思是,不要让进程输入空闲或等待输入,但我们知道进程已经准备好没有任何输入。
  • 您能否详细说明您要完成的工作,或者如果/当您确定 PowerShell 准备就绪时,您的代码接下来会做什么?
  • 一旦准备就绪,我可以获取用户输入或在上面写一些字符串(通过代码),这个过程会很明显:​​你可以看到添加的字符串、执行的字符串、查看结果等...就像您将看到人类与 powershell 交互的方式一样
  • 如果您需要从 C# 运行 PS 脚本,我建议您使用 System.Management.Automation 使用本机 C# 方法设置运行空间,读取脚本文件然后执行它。这样您就可以更好地控制整个过程。
  • 所以您实际上是想通过 PowerShell 将输入和输出运行到您的应用程序并退出?

标签: c# powershell transitions


【解决方案1】:

你的意思是这样的?

Start-Process powershellPath -NoNewWindow -Wait

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    相关资源
    最近更新 更多