如何在不停止批处理的情况下停止当前正在运行的cmd进程?
我有一个运行另一个进程的循环批处理文件。如何在不停止批处理的情况下停止当前正在运行的cmd进程?
如果一个进程抛出一个错误,它将基本上重启自己。
这里是短版:
:start C:\Squid\bin\squid.exe
timeout 1
goto start
与上面的代码的问题是,有时我需要重新启动有力当前运行的进程。
现在,如果我按CTRL + C它实际上终止该批次本身并关闭窗口,这不是我想要的........
我可以写另一个批处理文件taskkill命令,但我不能,因为有不同进程ID的此过程的许多实例。
感谢您的帮助!
回答:
其实我可以用启动/等待命令,这是一样的上面,因为它会等待文件来执行,但会在不同的窗口中打开它,我可以很容易地接近和强制程序重新启动无需终止我的批处理。
:start start /wait C:\Squid\bin\squid.exe
timeout 1
goto start
注意:在关闭批处理时可能会提示终止执行。我发现,应对在这里的方式:https://superuser.com/questions/35698/how-to-supress-terminate-batch-job-y-n-confirmation
rem Bypass "Terminate Batch Job" prompt. if "%~1"=="-FIXED_CTRL_C" (
REM Remove the -FIXED_CTRL_C parameter
SHIFT
) ELSE (
REM Run the batch with <NUL and -FIXED_CTRL_C
CALL <NUL %0 -FIXED_CTRL_C %*
GOTO :EOF
)
以上是 如何在不停止批处理的情况下停止当前正在运行的cmd进程? 的全部内容, 来源链接: utcz.com/qa/261597.html