后台:我喜欢使用控制台程序进行简单测试。这些东西往往需要调试和分析,最简单的方法是使用printf
或等效的 - 几乎任何语言都可以使用。不幸的是,当控制台程序终止时,包含文本缓冲区的窗口退出 - 我失去了那么简单的反馈。
然而,当你从Visual Studio中启动一个程序(没有调试)时,Visual Studio设法启动程序并在进程终止后让控制台窗口保持打开状态 - 这种行为很方便!不幸的是,我无法从visual studio开始所有流程。
那么,有没有办法启动所有程序或至少某些程序,以便他们的控制台窗口保持打开状态,直到我关闭它而不是直到进程退出?我梦想着一些非常简单的工具(或注册表设置),使Windows更适合简单的开发任务。
两个特定情况:从批处理文件(简单的单元测试,基本上)开始新编译的程序,并通过资源管理器或其他一些外部应用程序启动程序(即无法传递参数) 。
进一步要求:理想情况下,无论启动的控制台程序如何,任何解决方案都应该有效;特别是它不应该依赖于程序的语言或运行时,并且它不应该要求更改已启动的程序或尽可能少。
特别是:我总是可以将输出重定向到日志文件,所以我正在寻找比这更简单的东西;即不需要维护文件名和管理文件。你可以毫不费力地使用一些东西,并且可以使用多个并行进程。在执行结束时暂停是一种需要更改代码的解决方法,并且会破坏该进程的其他调用者(因为进程永远不会终止),所以它几乎不比日志文件好,并且不总是可用。
答案 0 :(得分:4)
为什么不通过像cmd.exe / K这样的shell命令来执行它,而不是运行程序,这应该保留程序运行的控制台。无论程序是如何构建的,这都适用于所有情况。
答案 1 :(得分:1)
您是否可以在程序结束时添加Console.Read();
?它将保持控制台窗口,并在您按任意键时关闭。
答案 2 :(得分:0)
对于使用资源管理器,您可以在资源管理器上下文菜单中添加“运行和等待”命令。它不需要编程。 本页介绍了如何执行此操作:
http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm
如果从批处理文件运行测试,为什么不在最后添加pause
语句?如果你从资源管理器开始测试,这当然不会起作用。