繁体   English   中英

如何启动进程,暂停2小时,然后在Powershell中终止进程

[英]How can I start a process, pause for 2 hours and then kill a process in Powershell

如何启动进程,暂停2个小时,然后在Powershell中终止进程。 我可以启动它并终止该进程,但是Start-Sleep命令似乎在我的脚本中不起作用。 我以为这很简单。 不知道我是否缺少某些东西,或者甚至可以睡2个小时。

if((Get-Process -Name test -ErrorAction SilentlyContinue) -eq $null){
."C:\Program Files (x86)\test.exe" Start-Sleep -s 7200 Stop-Process -name test}

在单行脚本块中放置多个PowerShell命令时,必须用分号分隔命令:

if((Get-Process -Name test -ErrorAction SilentlyContinue) -eq $null){ ."C:\Program Files (x86)\test.exe" ; Start-Sleep -s 7200 ; Stop-Process -name test}

只是为了给Jeff的答案添加一些内容-您可以使用Start-Process-PassThru来确保您结束了启动的正确过程。

if ((Get-Process 'test' -EA SilentlyContinue) -eq $null){
    $Process = Start-Process "C:\Program Files (x86)\test.exe" -PassThru
    Start-Sleep -Seconds (2*60*60)
    $Process | Stop-Process
}

这意味着如果该进程死于其他原因,并且手动重新启动或由脚本的其他副本等重新启动,则该脚本不仅会在两个小时后将其杀死,还会杀死正确的进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM