2015-02-07 45 views
1

我的小腳本是這樣工作的PowerShell的停止過程中使用的過程年齡運行得奇怪

$age = read-host "enter age" 
Get-Process | Where-Object { $_.Name -eq "notepad" -and ($_.starttime).totalminutes -le $age} | Stop-Process (New-TimeSpan -Start (get-process notepad).StartTime).totalminutes 

如果我改變-le-gt-ge(這是我想使用),它不會終止進程。 ..我真的不明白爲什麼這不起作用。

任何人都可以分享一些見解嗎?

謝謝!

回答

2

我不完全明白你想達到什麼目的,但我想你想殺死記事本進程,該進程的運行時間超過了定義的分鐘數。在這種情況下,你可以使用這些腳本

# Get process 
Get-Process | 
# which has the name of notepad and current date minus start date in minutes is less than defined age 
Where-Object { $_.Name -eq "notepad" -and ((Get-Date) - $_.starttime).TotalMinutes -gt $age } | 
#Kill the process 
Stop-Process 

這裏的技巧是讓當前日期的差異,並開始日期分鐘,這可以這樣實現:

((Get-Date) - $_.starttime).TotalMinutes 
+0

嘿。是的,那正是我想要做的。你的提示似乎有幫助!非常感謝 – gotner 2015-02-07 10:37:43

+0

@gotner如果您發現它解決了您的問題,請考慮[接受答案](http://meta.stackexchange.com/a/5235)。 – 2015-02-07 17:25:26