用“无响应”状态查找应用程序的脚本,在Windows XP中终止并重新启动应用程序

我试过了:

taskkill /f /fi "status eq not responding" 

这不起作用。 即使是一个没有响应的应用程序,我也有这样的信息:

没有使用指定标准运行的任务。

未响应状态出现在应用程序Windows 任务pipe理器的“应用程序”选项卡上

我在Windows XP SP3 x86上试过这个命令:

 tasklist /fi "STATUS eq NOT RESPONDING" 

产出是:

信息:没有任何使用指定条件运行的任务。

接下来我尝试了相反的观点

 tasklist /fi "STATUS eq RUNNING" 

输出和上面一样。

然后我在万维网上搜索关于任务列表的网页,并在Windows XP上对状态进行筛选 ,发现很多页面都与我自己的测试返回一样:

过滤状态在Windows XP上不起作用。

这显然是Windows XP上的tasklist和taskkill的一个bug。

Windows server 2000及更高版本的Microsoft的较新任务列表文档以及以上Windows XP的参考文档包含两个任务列表示例,其中包含筛选器选项/fi "STATUS eq running"命令行上的/fi "STATUS eq running" 。 但是在Windows XP上输出只是:

信息:没有任何使用指定条件运行的任务。

从每个示例中删除/fi "STATUS eq running" ,并使用剩余的参数运行任务列表导致预期的输出。

所以我想通过使用我的德语Windows XP中tasklisttaskkill的这个bug

 tasklist /v /fi "USERNAME ne NT-AUTORITÄT\SYSTEM" /fi "USERNAME ne NT-AUTORITÄT\NETZWERKDIENST" 

并过滤任务输出, 而不输出响应

但是这也是行不通的。 我让一个GUI应用程序运行到一个无限循环,因此在Windows任务管理器的选项卡应用程序中显示状态Not Responding (德语:KeineRückmeldung)。 但是在上面的命令输出中,GUI应用程序仍然以状态Running (German:Wirdausgeführt)列出。

它看起来像在Windows XP上使用tasklisttaskkill在Windows任务管理器中从命令行查找和终止状态不响应的应用程序是不可能的。