这个问题在本质上与 Powershell command prompt prints ^C when pressing Ctrl+C, why? 相关 - 两者都处理 PowerShell 控制台被搞砸。

鉴于:

  • Windows 10 或 8 或 8.1
  • PowerShell 控制台

  • 考虑以下脚本:
    $iisexpress = "C:\Program Files (x86)\IIS Express\iisexpress.exe"
    $config = "c:\xyz\.vs\config\applicationhost.config"
    $logFile = "$env:temp\1.log"
    $id = (Start-Process $iisexpress "/site:Site1","/config:$config" -PassThru -RedirectStandardOutput $logFile -NoNewWindow).Id
    $id
    

    我不认为这里有解决方案特定的配置很重要。重要的是我正在启动一个站点,同时重定向输出并收集进程 ID。

    就是这样。尝试使用控制台一点。如果没有任何 react - 再次运行脚本,即使它不是必需的。控制台很烂。

    为什么?我如何解决它?

    最佳答案

    我相信是 -NoNewWindow 标志给你带来了麻烦。 iisexpress.exe 使用此开关从 Powershell 窗口内运行,似乎部分劫持了您的输入。

    我仍然很想调查为什么会发生这种情况并且目前还没有答案,但一个简单的解决方法是用 -NoNewWindow 替换 -WindowStyle hidden

    关于windows - 一个简单的 PowerShell 脚本,可破坏 PS 控制台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43555211/

    10-11 23:10
    查看更多