我正在运行以下批处理脚本:
@echo off
tasklist /nh /fi "Windowtitle eq Export to PDF - DOORS" | find /i "Export to PDF - DOORS" >nul && (
echo PDF is running
) || (
echo PDF is not running
)
如果窗口当前处于活动状态,则此回弹“PDF正在运行”。也许我使用了错误的命令(tasklist)。有没有办法在打开的窗口的完整列表中找到?
答案 0 :(得分:3)
我能够通过VB脚本得到我需要的东西(感谢@JoshGuzman的想法):
Set Word = CreateObject("Word.Application")
Set Tasks = Word.Tasks
For Each Task in Tasks
If Task.Visible Then
If Task.name = "Export to PDF - DOORS" Then
Wscript.Echo "PDF is Running"
Else
Wscript.Echo "PDF is not Running"
End If
End If
Next
Word.Quit
然后从命令提示符或批处理文件中使用wscript myScript.vbs
调用VB脚本。
答案 1 :(得分:1)
这是解决方案......
@echo off
tasklist /FI "WINDOWTITLE eq Export to PDF - DOORS" | find /i "Image Name" >nul && (
echo PDF is running
) || (
echo PDF is not running
)
这就是发生的事情
tasklist /FI "WINDOWTITLE eq myscript.bat - Notepad"
如果任务列表找到任何匹配项,则输出:
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
notepad.exe 3212 Console 1 22,704 K
因此,您必须使用查找/ i“图像名称”,因为如果 myscript.bat - 记事本存在Windows标题,则会出现图像名称
哦,我差点忘了如果找不到匹配则输出会:
信息:没有任务正在运行指定的条件匹配。
请注意,“图像名称”字样不在此输出中。
希望这对你有所帮助。
答案 2 :(得分:0)
如果您愿意使用Microsoft的PowerShell而不是cmd.exe(它也适用于我的旧Windows XP,我只需手动安装;在新版本的Windows上预装),您可以安装{{3}作为管理单元,然后执行此操作:
Select-Window | Format-Table processid,processname,title -AutoSize
AUSFÜHRLICH: Enumerating all windows
ProcessId ProcessName Title
--------- ----------- -----
7452 powershell Windows PowerShell V2 (CTP3)
2688 chrome cmd - tasklist show all windows - Stack Overflow - Google Chrome
2688 chrome List all open window titles - PowerShellCommunity.org - Windows PowerShell Discussion Forums ...
3572 TOTALCMD Total Commander 8.0 - Scrum-Master.de Inh. Alexander Kriegisch
4152 eclipse Java - dummy2/src/de/scrum_master/aop/log4j/Log4jAspect.aj - Eclipse Platform - Java, Scala, ...
5608 Foxit Reader quick5A4.pdf - Foxit Reader
2812 TextPad TextPad - [C:\Dokumente und Einstellungen\Robin\Eigene Dateien\java-src\dummy2\bin\log4j.prop...
如您所见,列出了两个镀铬窗口,而板载命令Get-Process
仅列出了每个进程一个窗口,就像tasklist
中的cmd.exe
一样:
Get-Process | Where {$_.mainwindowtitle} | Format-Table id,name,mainwindowtitle -AutoSize
Id Name MainWindowTitle
-- ---- ---------------
2688 chrome cmd - tasklist show all windows - Stack Overflow - Google Chrome
4152 eclipse Java - dummy2/src/de/scrum_master/aop/log4j/Log4jAspect.aj - Eclipse Platform - Java, Scala, Aspec...
5608 Foxit Reader quick5A4.pdf - Foxit Reader
7452 powershell Windows PowerShell V2 (CTP3)
2812 TextPad TextPad - [C:\Dokumente und Einstellungen\Robin\Eigene Dateien\java-src\dummy2\bin\log4j.properties]
3572 TOTALCMD Total Commander 8.0 - Scrum-Master.de Inh. Alexander Kriegisch