如何使用 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运行呢?

你可以试试:

tasklist /fi "windowtitle eq MyDaemon"

键入任务列表/? 以获取更多详细信息。

不可以,您只能枚举进程。如果进程已使用参数(如 your')启动,则看不到它们。

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

相关内容

最新更新