【问题标题】:Powershell ISE breaks when using CMD /C Pause使用 CMD /C 暂停时,Powershell ISE 中断
【发布时间】:2019-06-11 20:41:29
【问题描述】:

我是 PowerShell 的新手,从批处理过渡,所以如果我犯了一个愚蠢的错误,请原谅我。我真的很喜欢使用 Powershell ISE。但是对于我正在尝试运行的当前脚本,我使用了cmd /c pause | Out-Nul 命令,它通过不允许我继续进行而破坏了 ISE。

我试图找到一些暂停但不显示命令输出的方法,我找到了cmd /c pause 命令。我可以在正常的 PowerShell 提示符下正常运行它,但 ISE 没有它。

任何人有任何想法为什么会发生这种情况或cmd /c pause Out-Nul 的更好替代方案?谢谢,任何建议都非常受欢迎!

【问题讨论】:

    标签: powershell cmd powershell-ise


    【解决方案1】:
    1. Powershell ISE 不会重定向 STDIN(需要暂停)。
    2. 不需要向 cmd 发送暂停命令。

    有关 ISE 无法采用标准输入的更多信息,请参阅 this post 。您不会找到您的具体问题,但问题是完全相同的问题。

    在该页面上,您还将找到一种更好/原生的方式来从 powershell 执行“暂停”... (又名[System.Console]::ReadKey($false)

    【讨论】:

    • [System.Console] 在 ISE 中不起作用,它没有控制台。
    • 好信息,但@zdan 是正确的:[System.Console]::ReadKey($false) 在 ISE 中不起作用,但 Read-Host 'Press ENTER to exit' 是一个合理的替代品。
    • 感谢您指出这一点。我想我在想他会在点击链接时看到这个(链接谈到了这个)。我认为应该在 ISE 中工作的是If ([console]::KeyAvailable) {If (([System.Console]::ReadKey($false)).我只是想展示一种简单的方法来从 PowerShell 中执行“暂停”命令。
    猜你喜欢
    • 2013-02-19
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多