【发布时间】:2022-01-20 00:52:03
【问题描述】:
我正在设置 CruiseControl.NET。我遇到的问题是我将 CC 作为控制台应用程序运行,当我的构建成功完成并执行(使用 exec)时,它会在 CruiseControl DOS 提示符下启动它。我只是使用简单的批处理文件来启动我的应用程序,但让它在与 CC 相同的提示符下运行导致 CC 认为只要我的应用程序运行,构建就会继续。
cmd.exe 的命令行参数是否会生成另一个单独的提示窗口?
【问题讨论】:
-
cmd.exe 是 CUI shell,而不是 GUI。它不会创建窗口。它使用由控制台主机进程 conhost.exe 的实例创建和管理的控制台窗口。如果 CUI 程序正常启动,则基本客户端 DLL(kernel32.dll 或 kernelbase.dll)中的初始化代码会继承父控制台(如果有)或分配新控制台,除非它以创建标志
DETACHED_PROCESS启动(即没有控制台)。如果它以创建标志CREATE_NEW_CONSOLE开始(正如 CMD 的start使用的那样),则基本 DLL 总是分配一个新的控制台,而不是继承父级的。
标签: windows command-line cmd