如果进程使用的虚拟内存量超过某个限制,是否有办法使用 WMIC、bat 文件或 powershell 来终止具有特定任务名称的任务?
具体来说,如果 iexplore.exe 进程的工作集(RAM 使用量)或虚拟内存分配超过 1GB,我想终止该进程的任何实例。
我可以使用此 cmd: 使用 taskkill 终止任务,taskkill.exe /F /IM iexplore.exe
并且我可以使用此 cmd 过滤进程列表及其 RAM 使用情况wmic process where "name='iexplore.exe' and workingsetsize>=1000000000" get name, workingsetsize, processid
。
答案1
这是我最终使用的命令:
PowerShell -Command "get-process | ? {$_.WorkingSet64 -gt 10000000000 -AND ($_.name -like 'java' -OR $_.name -like 'iexplore')} | foreach {kill -id $_.Id -force}"
如果所有名为 java 或 iexplore 的进程的 RAM 使用量超过 1GB,它将使用 powershell 来终止它们。