用于查找具有"not responding"状态的应用程序的脚本,在Windows XP中终止并重新启动应用程序



我尝试过:

taskkill /f /fi "status eq not responding"

这不起作用。即使状态的应用程序没有响应,我也会收到以下消息:

没有使用指定条件运行的任务。

未响应状态显示在应用程序的Windows任务管理器应用程序选项卡上。

我在Windows XP SP3 x86上尝试了以下命令:

tasklist /fi "STATUS eq NOT RESPONDING"

结果是:

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

接下来我尝试了相反的方法:

tasklist /fi "STATUS eq RUNNING"

产量与上述相同。

然后,我在万维网中搜索关于任务列表的网页,并在WindowsXP上使用过滤器状态,发现许多页面都报告与我自己返回的测试相同:

状态筛选在Windows XP上不起作用

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

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

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

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

因此,我考虑使用在我的德国Windows XP上解决任务列表taskkill的这个错误

tasklist /v /fi "USERNAME ne NT-AUTORITÄTSYSTEM" /fi "USERNAME ne NT-AUTORITÄTNETZWERKDIENST"

并过滤输出中未响应的任务的输出。

但这也不起作用。我让GUI应用程序运行到一个无休止的循环中,因此在Windows任务管理器中的Applications选项卡上显示状态Not Responding(德语:Keine Rückmeldung)。但在上面的命令输出中,GUI应用程序仍然以运行状态列出(德语:Wird ausgeführt)。

在Windows XP上,使用任务列表taskkill在Windows任务管理器中从命令行查找并终止状态为没有响应的应用程序似乎真的不可能。

最新更新