我的问题是:我怎样才能防止我在cmd中执行的程序在不改变原始源代码的情况下打开和关闭第二个cmd窗口?(我只有.exe文件)还有:有没有办法让程序在同一个cmd窗口中打印输出,而不是打开第二个窗口?
我正在使用Windows 11并执行程序这个程序打开第二个cmd窗口,打印一些东西,然后立即关闭。我不是这个程序的所有者,所以我没有办法改变它的源代码,使它暂停cmd窗口后,它完成执行。我看到类似的问题,人们建议添加/k在cmd提示符中的代码末尾,以防止它关闭,但问题是程序打开第二个cmd窗口,而/k命令不适用于它,所以它不工作。
1条答案
按热度按时间cig3rfwq1#
听起来你的程序 * 显式地 * 创建了一个 * 新的控制台窗口 *。
因此,任何常规调用机制(直接调用、通过
Start-Process
调用)都不会有什么不同。你有两个基本的选择:
cmd.exe
用于启动新的控制台窗口-您可以为cmd.exe
创建一个 * 代理 * 可执行文件,使窗口保持打开状态,直到用户按下一个键-见下文。要使用
cmd.exe
的代理可执行文件,请执行以下操作:cmd.exe
可执行文件,如下所示。cmd.exe
是在 current 目录中创建的(根据需要进行调整):字符串
编译代理
cmd.exe
可执行文件:注意事项:必须在 Windows PowerShell 中运行(在撰写本文时,不支持从PowerShell (Core) 7+创建
.exe
文件(PowerShell 7.3.x)-请参阅GitHub issue #13344)。型