[英]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.