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

标签 windows command-line batch-file

如何检查应用程序是否正在从批处理(以及 cmd)文件运行?

如果程序已经在运行,我不需要启动另一个实例。 (我无法更改应用以使其仅成为单个实例。)

该应用程序还可以以任何用户身份运行。

最佳答案

我想到的另一种可能性,它不需要保存文件,灵感来自使用 grep是:

tasklist /fi "ImageName eq MyApp.exe" /fo csv 2>NUL | find /I "myapp.exe">NUL
if "%ERRORLEVEL%"=="0" echo Program is running
  • /fi "" 定义要查找的应用过滤器,在我们的例子中是 *.exe 名称
  • /fo csv 定义输出格式,csv 是必需的,因为默认情况下可执行文件的名称如果太长可能会被截断,因此 find< 无法匹配 稍后。
  • find/I表示不区分大小写匹配,可以省略

请参阅 tasklist 的手册页整个语法的命令。

关于windows - 如何通过批处理脚本检查进程是否正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162291/

相关文章:

windows - 如何在 WinCC OA 中将 system() 与 rxrepl 一起使用?

batch-file - 批量ERRORLEVEL问题

windows - 批处理文件,文件夹路径中的通配符,不知道通配符是什么

windows - 检测操作系统批处理

windows - 我在哪里可以获得最新的 libjingle?

windows - Perl 不接收命令行参数?

windows - 如何在 windows 批处理文件或 linux shell 脚本中传递超过 10 个参数

c - 为什么我会出现段错误?

windows - 如何提取 Windows 批处理文件中的版本号?

Linux:查找具有特定名称的所有文件夹,删除它们并将文件夹复制到这些文件夹的父目录中