📜  批处理脚本 – 如何通过批处理脚本检查进程是否正在运行(1)

📅  最后修改于: 2023-12-03 15:39:43.508000             🧑  作者: Mango

批处理脚本 – 如何通过批处理脚本检查进程是否正在运行

在编写批处理脚本时,有时需要检查某个特定的进程是否正在运行。本文将介绍如何通过批处理脚本实现这一功能。

获取进程列表

我们首先需要获取当前正在运行的进程列表。可以使用 tasklist 命令来实现:

tasklist

该命令将列出所有正在运行的进程及其相关信息。例如:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0         24 K
System                           4 Services                   0        160 K
smss.exe                       276 Services                   0        424 K
csrss.exe                      364 Services                   0      4,192 K
查找特定进程

要检查特定进程是否正在运行,我们可以使用 findstr 命令来查找相关信息。例如,要查找名为 notepad.exe 的进程是否正在运行,可以使用以下命令:

tasklist | findstr /i "notepad.exe"

其中,/i 参数表示执行不区分大小写的查找。

如果找到了进程,则会返回相关信息:

notepad.exe                   3460 Console                   1     15,584 K

否则,命令将不返回任何信息。

根据进程状态执行操作

根据查找结果,我们可以编写逻辑来判断是否执行特定操作。例如,如果找到了名为 notepad.exe 的进程,我们可以输出一条提示消息:

tasklist | findstr /i "notepad.exe"
if %errorlevel%==0 (
    echo Notepad is running.
) else (
    echo Notepad is not running.
)

其中,%errorlevel% 变量保存了 findstr 命令的执行结果。如果找到了进程,%errorlevel% 为 0;否则为 1。

完整示例

下面是一个完整的示例。该脚本将查找名为 notepad.exe 的进程是否正在运行,如果找到了则输出提示消息。

@echo off

tasklist | findstr /i "notepad.exe"
if %errorlevel%==0 (
    echo Notepad is running.
) else (
    echo Notepad is not running.
)

pause
总结

本文介绍了如何通过批处理脚本检查进程是否正在运行。首先我们使用 tasklist 命令获取进程列表,然后使用 findstr 命令查找特定进程。根据查找结果,我们可以编写逻辑来判断是否执行特定操作。