背景:我使用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运行?
答案 0 :(得分:2)
您可以尝试:
tasklist /fi "windowtitle eq MyDaemon"
输入任务列表/?有关详细信息。
答案 1 :(得分:0)
不,您只能枚举进程。如果已使用参数启动进程(例如您的'),则无法看到它们。
我可以在.NET中为您提供一个解决方案来获取进程的应用程序名称(或主窗口的标题),但我认为dos不能这样做。