1

背景:我使用 DOS START 命令启动 MyDaemon:

@echo off
START "MyDaemon" java -cp test.jar MyTest /B

作为其中的一部分,我还想检查 MyDaemon 是否已经在运行。如果是,我不想再开始了。

符合我要求的 dos 命令是:

tasklist /fi "imagename eq "MyDaemon" > nul
if errorlevel 1 start "MyDaemon" java -cp test.jar MyTest /B

那是因为,在任务列表中,图像名称是“java.exe”,而不是“MyDaemon”。我正在寻找在任务管理器中看到的“应用程序名称”,而不是图像名称。

那么如何执行此检查以查看 MyDaemon 是否已在使用 DOS 运行?

4

2 回答 2

2

你可以试试:

tasklist /fi "windowtitle eq MyDaemon"

键入任务列表/?了解更多详情。

于 2012-06-07T19:19:23.923 回答
0

不,您只能枚举进程。如果使用参数(如您的')启动了一个进程,您将看不到它们。

我可以在 .NET 中为您提供一个解决方案来获取进程的应用程序名称(或主窗口的标题),但我认为 dos 做不到。

于 2012-06-07T18:37:38.217 回答