![如何中断正在运行的批处理文件,在其环境中执行命令,然后继续?](https://linux22.com/image/1328154/%E5%A6%82%E4%BD%95%E4%B8%AD%E6%96%AD%E6%AD%A3%E5%9C%A8%E8%BF%90%E8%A1%8C%E7%9A%84%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%EF%BC%8C%E5%9C%A8%E5%85%B6%E7%8E%AF%E5%A2%83%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%91%BD%E4%BB%A4%EF%BC%8C%E7%84%B6%E5%90%8E%E7%BB%A7%E7%BB%AD%EF%BC%9F.png)
我知道我可以用 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%
正常工作。