我有这段代码可以检测Excel.exe任务何时终止:
:Excel
tasklist /nh /fi "imagename eq Excel.exe" | find /i "Excel.exe" >nul && (
goto Excel
) || (
goto Continue
)
:Continue
我想修改此代码以使其在我关闭名为
的Excel工作簿时检测到Database.xlsm
这是因为执行批处理时,我需要关闭所有打开的Excel工作簿,以使其进入
:继续
我只希望在关闭Database.xlsm文档时继续。
希望您能帮助我。谢谢!
答案 0 :(得分:1)
您可以尝试以下代码,使用findstr
来过滤进程的窗口标题:
:Excel
timeout 1 /NOBREAK
tasklist /V /FI "IMAGENAME eq excel.exe" /FO LIST | findstr /RIXC:"Window Title: *Microsoft Excel - Database.xlsm" > nul && (
goto :Excel
) || (
goto :Continue
)
:Continue
您可能需要使部分字符串Microsoft Excel - Database.xlsm
适应实际的Excel窗口标题。
我在第timeout 1 /NOBREAK
行之后插入了:Excel
,以避免CPU负担过重。
答案 1 :(得分:0)
尝试使用windowtitle
过滤器进行实验。
首先使用/V
标志查看窗口标题。然后尝试对其进行过滤
即
tasklist /v /FI "imagename eq Excel.exe" /FI "windowtitle eq Microsoft Excel - Database.xlsm"
根据确切的excel和Windows版本,它可能/可能不起作用
或者您以后可以使用find