如何从批处理/ cmd文件中检查进程是否正在运行?如果进程正在运行,我该如何自动停止进程?
就像cmd脚本一样,有人可以给我一些提示或帮助我制作那种脚本.
示例(伪代码):
If calc.exe is running
Stop calc.exe
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西:
@echo off
:x
PATH=C:\Windows\System32\calc.exe
If calc.exe is ON goto Process_Stop
:Process_Stop
net stop calc.exe
goto x
Run Code Online (Sandbox Code Playgroud)
dbe*_*ham 16
首先,你有错误的命令来停止像calc.exe这样的进程.NET STOP将停止服务,但不是正常的程序进程.你想要TASKKILL.
第二 - 如果你知道你想要杀死进程,那么为什么你认为你必须先检查它是否先运行才能杀死它?你可以简单地试图杀死这个过程.如果它不存在,则会生成错误,并且不会造成任何损害.如果它确实存在,那么它将被成功消息杀死.
taskkill /im calc.exe
Run Code Online (Sandbox Code Playgroud)
如果您不想看到错误消息,则使用将stderr重定向到nul 2>nul.如果您不想查看成功消息,则使用将stdout重定向到nul >nul.
taskkill /im calc.exe >nul 2>nul
Run Code Online (Sandbox Code Playgroud)
如果您想根据结果采取行动,那么您可以使用条件&&和||运算符来获得成功和失败.
taskkill /im calc.exe >nul 2>nul && (
echo calc.exe was killed
) || (
echo no process was killed
)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用ERRORLEVEL根据结果确定要执行的操作.
| 归档时间: |
|
| 查看次数: |
63506 次 |
| 最近记录: |