我想检查所有流程如果他们打开超过 3 个小时,就会关闭它们,以限制特定应用程序(chrome)的屏幕时间,我该怎么做批?
答案1
我建议使用 PowerShell 来完成此类任务。例如,首先,您可以:
foreach ($p in $(Get-Process -Name Notepad -ErrorAction SilentlyContinue))
{
write-host "Found PID:" $p.Id "Process:"$p.Name
if ( $(NEW-TIMESPAN -start $p.starttime -End $(Get-Date)).TotalSeconds -ge 10800)
{
Stop-Process -Force -id $p.Id
}
else
{
Write-host "$($p.Id) has not been running long enough to kill."
}
}
对于使用 Get-Process 找到的每个名为 Notepad 的进程,它会打印 PID 和名称。然后使用找到的进程的 starttime 属性,使用 PID 强制调用 stop-process。如果进程运行的总秒数大于或等于指定的 3 小时(以秒为单位)。
例如,您可以从任务计划程序每 5 分钟运行一次此脚本。我认为 3 小时不需要精确。