簡體   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