批处理 IF .exe 未运行

Ben*_*nes 2 windows batch command-line batch-file

我正在尝试创建一个批处理,如果 program.exe 没有在进程中运行,它将运行下面的代码。在 vb.net 这很容易,但我不想创建程序。我猜 VBS 脚本会起作用,但我想看看是否可以创建一个批处理例程来执行上述操作。

。蝙蝠:

@ECHO OFF

REM peudo code:

If NOT program.exe Exist

'Do something.
Run Code Online (Sandbox Code Playgroud)

以上不起作用,那我错过了什么?

Ƭᴇc*_*007 5

给你:

@echo off
tasklist /FI "IMAGENAME eq program.exe" 2>NUL | find /I /N "program.exe" >NUL
if "%ERRORLEVEL%"=="0" echo Program is running.
Run Code Online (Sandbox Code Playgroud)

它使用 Tasklist.exe 获取与您的程序名称匹配的任务列表,然后使用 find 确定该程序是否确实存在于列表中。

然后它使用 find 返回的错误代码来确定它是否被找到,如果是,则执行代码(在本例中为 echo)。

Tasklist 和 Find 的输出被发送到 NULL。

来源