Powershell获取进程查询

Powershell获取进程查询,powershell,Powershell,我想写一个简单的If语句来检查进程是否存在。 如果它存在,就应该开始做一些事情 像这样,但工作……) 谢谢如果该过程不存在,则该值将评估为真: (Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null 或者,如果您想更改它,您可以按如下方式否定该语句: -not ( $(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $

我想写一个简单的If语句来检查进程是否存在。 如果它存在,就应该开始做一些事情

像这样,但工作……)


谢谢

如果该过程不存在,则该值将评估为真:

(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