即使从批处理文件启动的程序已终止,如何保持控制台 window 打开?

How to keep console window open even after program started from batch-file has been terminated?

我需要创建一个批处理文件 (.bat),使控制台 window 即使在启动的程序终止后也保持打开状态(用于检查控制台 window 输出)。为此,我尝试使用“/WAIT”开关:

@ECHO OFF
title test
@ECHO ON
start "" /WAIT "C:\My CLI Toolszip\x64za.exe"

但是尽管使用了“/WAIT”开关,控制台 window 在 7za.exe 终止后自动关闭。 (显然,“/WAIT”开关只等待启动的程序终止)。

那么如何让控制台 window 在 7za.exe 被终止后仍保持打开状态?

start /wait 告诉批处理在执行下一行或完成脚本之前等待程序终止。要保持打开状态并且什么都不做,您可以使用暂停:

@ECHO OFF
title test
@ECHO ON
"C:\My CLI Toolszip\x64za.exe"
pause

或超时:

@ECHO OFF
title test
@ECHO ON
start "" /WAIT "C:\My CLI Toolszip\x64za.exe"
timeout /t 300

但是在超时或您按下任意键之前,这两个都不会执行任何操作。

如果您期望在 cmd window 中输出,并且该命令实际上将输出提供给 cmd 控制台,那么您不应该 start 它在当前控制台 window 之外。只要做:

@ECHO OFF
title test
@ECHO ON
"C:\My CLI Toolszip\x64za.exe"
pause