我期待:
Stop-Process
)。但我不知道从哪里开始。有什么建议吗?
答案 0 :(得分:-1)
如果您是从PowerShell脚本启动应用程序,并在该脚本中等待... 那么您只需要一种方法来跟踪脚本中的时间,然后再调用Stop-Process
。你还需要确定你知道要杀死的过程。
一个简单的实现可以在循环中使用Start-Sleep
:
$pid = PID OF THE RUNNING APPLICATION
$iter = 0
while((Get-Process -Id $pid)){
$iter++
Start-Sleep -Seconds 1
if($iter -gt 60) {
Stop-Process -Id $pid
break
}
}
如果您的流程在其他地方启动,则可能需要拉出流程开始时间。这似乎不是Get-Process
返回的,因此您可能想尝试WMI查询:
Get-WmiObject -Class Win32_Process -Filter "Name = 'APP.exe'"-Property Name,CreationDate
然后,您可以查找在特定时间之前开始的APP.exe实例。
答案 1 :(得分:-1)
在您尝试删除项目(文件夹/文件)之前,请检查它是否存在:
$folder = "C:\folder"
if (Test-Path $folder) { Remove-Item $folder -Recurse }
如果它已运行30分钟,则停止进程:
Get-Process firefox | Where StartTime -lt (Get-Date).AddMinutes(-30) | Stop-Process -Force