在通过 BAT 文件完成进程之前终止 CMD 行进程

terminate cmd line process before process finishes via bat file

提问人:Tim Kirkwood 提问时间:11/4/2023 最后编辑:Tim Kirkwood 更新时间:11/4/2023 访问量:100

问:

我正在尝试编写一个 bat 文件,运行一个大约需要 1 小时才能完成的进程,在 N 分钟后终止它,然后启动另一个进程。以这种方式运行一系列命令后,我想暂停脚本,以便我可以从命令行窗口复制一些输出(每个打印的进程都有一个键,这将允许我在进程完成运行时获取相关数据)。在实践中,这看起来像(N = 3 分钟):

command -flags
timeout 180
*kill command*
command -new_flags 
timout 180
*kill command*
#more commands, timouts and kills...
command -yet_more_new_flags 
timout 180
*kill command*
pause 

这样做的主要问题似乎是:

  1. 我不知道 kill 命令会是什么(理想情况下是 相当于我在程序启动后按 ctrl-C
  2. 每个命令都是按顺序执行的,因此只有在进程完成后才会运行 kill 命令。这不是我 想要 - 我的目标是在进程运行后停止它 N 分钟,但尚未完成。这个过程很长,所以我想 开始一堆,拿到他们的钥匙,然后在他们完成后回来 (即半并发运行它们)而不是等待一个小时 在每一个之间。

请有人解释一下如何实现这一目标?

谢谢!

Windows 批处理文件 命令行 进程 终止

评论

1赞 Compo 11/4/2023
Start "" "P:\athTo\process.exe" -ProcessArguments.您很可能会从打开命令提示符窗口、键入和按键中受益。我也希望看到而不是 ,(我认为这就是你用 timout 180 的多个错别字的意思)。%SystemRoot%\System32\taskkill.exe /?[ENTER]%SystemRoot%\System32\timeout.exe /T 180 /NoBreaktimeout 180
0赞 7three 11/5/2023
为什么不将输出重定向到文件...?

答: 暂无答案