判断一个进程是否正在运行(例如FireFox)并停止它的正确方法是什么?
我做了一些环顾四周,我发现最好的方法是这样的:
if((get-process "firefox" -ea SilentlyContinue) -eq $Null){
echo "Not Running"
}
else{
echo "Running"
Stop-Process -processname "firefox"
}
字符串
这是否理想的做法?若否,正确的做法是甚么?
判断一个进程是否正在运行(例如FireFox)并停止它的正确方法是什么?
我做了一些环顾四周,我发现最好的方法是这样的:
if((get-process "firefox" -ea SilentlyContinue) -eq $Null){
echo "Not Running"
}
else{
echo "Running"
Stop-Process -processname "firefox"
}
字符串
这是否理想的做法?若否,正确的做法是甚么?
5条答案
按热度按时间cigdeys31#
你这样做的方式是两次查询流程。此外,林恩提出了一个关于首先要友好的好观点。我可能会尝试以下内容:
字符串
gzjq41n42#
如果您不需要显示确切的结果“running”/“not runnuning”,您可以简单地:
字符串
如果进程没有运行,你将不会得到任何结果。如果进程正在运行,你将收到
get-process
输出,并且进程将停止。2jcobegt3#
@jmp242 -泛型
System.Object
类型不包含CloseMainWindow
方法,但在收集ProcessList
变量时静态转换System.Diagnostics.Process
类型对我来说很有效。下面是使用此转换(并将循环更改为使用ForEach-Object
)的更新代码(来自this answer)。字符串
dldeef674#
谢谢@Joey,这就是我要找的。
我只是做了一些改进:
字符串
46scxncf5#
从进程杀死开始,这里是
python
,我的2美分:字符串