如何中断正在运行的批处理文件,在其环境中执行命令,然后继续?

如何中断正在运行的批处理文件,在其环境中执行命令,然后继续?

我知道我可以用 Crtl-C 中断正在运行的批处理文件,然后继续执行。

但是,在批处理暂停时,是否可以在批处理文件的 cmd 环境中执行命令?

例如,我可能想要暂停正在运行的批处理,更改它之前设置的一些变量,然后继续执行。

答案1

暂停后在批处理中添加修改后的行(即为变量设置新值)并继续批处理

答案2

此代码将允许从批处理上下文中执行任意命令:将其放入批处理文件并使用它。

@echo off

:loop 
  set cmd=
  set /p "cmd=Please give command, empty line to finish "
  if defined cmd (
    call %cmd%
    goto loop
  )

要完成执行命令,只需点击Enter

要在批处理中使用它,只需插入一行并调用上述代码:

do stuff 
do more stuff

call interrupt_me.bat

do even more stuff

如果您想知道为什么有一个call %cmd%而不是直线%cmd%- 它允许扩展传递的变量,以便命令可以echo %comspec%正常工作。

相关内容