【问题标题】:Why PowerShell opens a new window when running exe为什么PowerShell在运行exe时会打开一个新窗口
【发布时间】:2019-06-11 15:56:29
【问题描述】:

我有一个这样的 PowerShell 脚本:

$tfExe = path/to/tf.exe

& $tfExt ... do something

如果我在我的计算机(和其他 PC)上运行此脚本,我会在我的 PowerShell 窗口中获得 .exe 输出。

当我在另一台计算机(使用 Windows 7 32 位)上运行脚本时,它会打开一个 cmd 窗口,在那里显示输出,然后窗口立即关闭。

每个 .exe 工具都会出现此问题,即使在 robocopy 中也是如此。

为什么会发生这种情况,我该如何改变它?

【问题讨论】:

    标签: powershell cmd command-prompt


    【解决方案1】:

    我的 PowerShell 遇到了另一个问题,该问题的解决方案也解决了这个问题。

    在我的PATHEXT 环境变量中我没有.exe。当我添加它时,问题解决了,所有 .exe 工具运行顺利,输出出现在 PowerShell 窗口中。

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,发现我删除了执行命令的文件夹。

      PATHEXT 没问题:

      但这不是(我已经在 PowerShell 之外删除了它 - 哎呀):

      导航到另一条路径解决了这个问题。

      【讨论】:

        【解决方案3】:

        您正在启动一个外部 exe,因此它按预期工作。但是,您可以尝试使用 cmd.exe /K - 更多信息在这里https://ss64.com/nt/cmd.html

        【讨论】:

        • 如果你点击链接,有一个选项:/K 运行命令,然后返回到 CMD 提示符。这对于测试、检查变量很有用所以我的 /c 有点误导 ;)
        • 在许多计算机中,我在我的 PowerShell 中获得了 exe 输出,并且任何窗口都没有打开,只有在特定计算机中才会出现。我认为问题出在特定计算机上,而不是其他计算机上。
        • 是的 - 取决于操作系统,有多种方法(注册表)可以更改 windows 命令 proc 的行为。
        • 这并不完全合理。当我运行 &"MSBuild.exe" 时它不会创建一个新窗口,但是当我运行 &"SonarScanner.MSBuild.Exe" 时它会创建一个新窗口。它想捕获未在新 cmd 窗口中打开的输出。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-01
        • 2015-05-12
        • 2021-06-05
        • 2014-07-12
        • 1970-01-01
        • 2018-06-26
        相关资源
        最近更新 更多