0

我有一个关于批处理的问题,我还没有找到任何地方。我需要创建一个批处理文件来确定任务管理器中应用程序下的任务是否正在运行并采取某种操作。我找到了很多关于如何判断进程是否正在运行的答案,但这种情况有点棘手。应用程序任务包含文本

管理员:[YODA][oo.server.start]

但任务管理器中的进程仅列为cmd.exe不幸的是,它不够具体,无法知道它是否是我想要的任务。我试过使用 psexec,但它给我的信息都没有帮助。据我所知,没有办法在 cmd 中找到正在运行的任务(而不是进程)。有什么想法吗?

4

2 回答 2

2

PowerShell 怎么样?

Get-Process | Select-Object MainWindowTitle

像这样批量使用它:

for /f "delims=" %%A in ('"PowerShell Get-Process ^| Select-Object MainWindowTitle ^| Select-String YODA"') do echo(%%A

示例输出:

@{MainWindowTitle=Administrator:  YODA}

没有 PowerShell...

如果您知道可以使用的应用程序的确切标题tasklist

tasklist /FI "WINDOWTITLE eq Administrator:  YODA"

请注意,和之间有两个空格Administrator:YODA因为 cmd.exe 有这个怪癖。

示例输出:

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
cmd.exe                       5996 Console                    1      1,024 K
于 2013-06-25T21:16:29.117 回答
0

您可以使用title批处理文件中的命令来设置标题,然后使用tasklist来确定具有该标题的窗口。

于 2013-06-26T07:43:19.620 回答