Powershell获取进程查询
我想写一个简单的If语句来检查进程是否存在。 如果它存在,就应该开始做一些事情 像这样,但工作……)Powershell获取进程查询,powershell,Powershell,我想写一个简单的If语句来检查进程是否存在。 如果它存在,就应该开始做一些事情 像这样,但工作……) 谢谢如果该过程不存在,则该值将评估为真: (Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null 或者,如果您想更改它,您可以按如下方式否定该语句: -not ( $(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $
谢谢如果该过程不存在,则该值将评估为真:
(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null
或者,如果您想更改它,您可以按如下方式否定该语句:
-not ( $(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null )
让
-ErrorAction SilentlyContinue
避免在流程不存在时抛出任何错误,这一点很重要。如果流程不存在,这将评估为true:
(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null
或者,如果您想更改它,您可以按如下方式否定该语句:
-not ( $(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null )
让
-ErrorAction SilentlyContinue
避免在进程不存在时抛出任何错误,这一点很重要。获取进程
不返回布尔值,并且进程名称没有扩展名,这就是代码无法工作的原因。删除扩展名,然后检查结果是否为建议的$null
,或者将结果强制转换为布尔值:
if ( [bool](Get-Process Tvnserver -EA SilentlyContinue) ) {
# do some
} else {
# do other
}
如果您不希望脚本在进程未运行的情况下执行任何操作:只需省略
else
分支。获取进程
不返回布尔值,并且进程名称没有扩展名,这就是代码无法工作的原因。删除扩展名,然后检查结果是否为建议的$null
,或者将结果强制转换为布尔值:
if ( [bool](Get-Process Tvnserver -EA SilentlyContinue) ) {
# do some
} else {
# do other
}
如果您不希望脚本在进程未运行时执行任何操作:只需省略
else
分支。对于否定条件,只需将-eq$null
更改为-ne$null
。对于否定条件,只需将-eq$null
更改为-ne$null
。