如何使用DOS批处理命令列出正在运行的应用程序?

时间:2012-06-07 18:27:42

标签: windows batch-file dos

背景:我使用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运行?

2 个答案:

答案 0 :(得分:2)

您可以尝试:

tasklist /fi "windowtitle eq MyDaemon"

输入任务列表/?有关详细信息。

答案 1 :(得分:0)

不,您只能枚举进程。如果已使用参数启动进程(例如您的'),则无法看到它们。

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