如何在不停止批处理的情况下停止当前正在运行的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

回到顶部