考虑以下批处理文件:
taskkill /IM calc.exe /FI "WINDOWTITLE eq Rechner" > C:\test.txt 2>&1
当我启动计算器时(它有窗口标题雷希纳(德语)并运行此批处理文件,它会关闭计算器并写入C:\test.txt
已发送的终止信号。
当我启动计算器并从我登录时运行的计划任务中运行此批处理文件时,它会执行相同的操作。
当我启动计算器并从独立于用户登录运行的计划任务运行此批处理文件时,计算器保持打开状态并C:\test.txt
提示找不到要终止的任务。
我认为这可能是因为在最后一种情况下,taskkill 无法从其上下文中“看到”窗口标题。当通过与登录无关的计划任务调用时,如何让它看到窗口标题?
答案1
不使用:
taskkill /IM calc.exe /FI "WINDOWTITLE eq Rechner" > C:\test.txt 2>&1
使用:
taskkill /IM calc.exe /FI "WINDOWTITLE ne Rechner" > C:\test.txt 2>&1
或者更好的是:
taskkill /IM calc.exe > C:\test.txt 2>&1
我会让你自己去弄清楚为什么必须使用以下命令:
cmd /c taskkill /im calc.exe > C:\test.txt 2>&1
您的计划任务必须由具有管理员权限的用户运行。
“无论用户是否登录都运行”时的这些设置:
无论是否选中“不存储”或“以最高值运行”都无所谓。
“仅在用户登录时运行”时的这些设置:“以最高速度运行”必须检查。