控制 Windows 命令行命令是否在新窗口中运行

控制 Windows 命令行命令是否在新窗口中运行

在我的 Windows 命令提示符中,有时当我运行命令时,它会在新的命令提示符中执行,而不是在当前命令提示符中执行。有没有办法控制这种情况(强制命令始终在当前窗口中运行或始终在新提示符中运行)?

示例:运行 ipython.exe 会在新提示符中打开解释器(我已经在其他一些命令中看到了这种行为,但现在我记不起来了)。

答案1

Windows 应用程序基本上有两种类型:基于控制台和基于窗口。这是由开发人员在编译代码之前设置的。CMD.EXE 是基于控制台的,NOTEPAD.EXE 是基于窗口的。如果从 cmd.exe 启动基于控制台的应用程序,它将始终在同一个窗口中打开,除非您执行某些操作来更改它(例如使用 START 命令)。如果应用程序在新窗口中打开,则它是基于窗口的,或者程序本身被编码为创建新窗口。

答案2

如果程序本身打开了一个新的控制台窗口,那么您无法采取任何措施来阻止它。

答案3

我不想重提这么老的帖子,但我也遇到过类似的问题,并遇到了这个帖子,但它并没有解决我的问题,因为我的 .exe 肯定是控制台版本。所以我想为其他人添加我的更新。

我的问题是,我调用的 .exe 已配置为以管理员身份运行。我启动的 cmd 提示符不是以管理员身份运行的,启动后无法提升权限。因此,它会启动一个新的提升权限的窗口来运行命令,该命令会在眨眼间完成,然后退出,只留下我的非提升权限提示符,没有任何输出。

解决方案 A:以管理员身份运行 cmd/powershell。然后它可以在同一个窗口中运行。解决方案 B:将 .exe 更改为不以管理员身份运行,这样它就不需要启动新的提升窗口。这是我选择的选项。

希望对某人有帮助

相关内容