杀死脚本开始应用程序

时间:2017-11-20 16:37:03

标签: powershell

我期待:

  • 删除文件夹的内容
  • 运行一个应用程序
    • 如果运行时间超过指定的时间段,则输入Kill命令(Stop-Process)。

但我不知道从哪里开始。有什么建议吗?

2 个答案:

答案 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