2

プロセスが存在するかどうかをチェックする単純なIfステートメントを作成したいと思います。それが存在する場合、何かが始まるはずです。

このように、しかし動作しています..;)

If ((Get-Process -Name Tvnserver.exe ) -eq $True)
{ 
    Stop-Process tnvserver
    Stop-Service tvnserver
    Uninstall...
    Install another Piece of Software
}
Else
{
    do nothing
}

ありがとう

4

2 に答える 2

4

Get-Processはブール値を返さず、プロセス名は拡張子なしでリストされます。そのため、コードは機能しません。拡張機能を削除し、結果がMusaab Al-Okaidiの$null提案どおりであるかどうかを確認するか、結果をブール値にキャストします。

if ( [bool](Get-Process Tvnserver -EA SilentlyContinue) ) {
  # do some
} else {
  # do other
}

プロセスが実行されていない場合にスクリプトに何も実行させたくない場合は、elseブランチを省略してください。

于 2013-02-24T18:31:44.663 に答える
3

プロセスが存在しない場合、これはtrueと評価されます。

(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null

または、変更する場合は、次のようにステートメントを無効にすることができます。

-not ( $(Get-Process -name Tvnserver.exe -ErrorAction SilentlyContinue) -eq $null )

-ErrorAction SilentlyContinueプロセスが存在しない場合にスローされるエラーを回避する必要があることが重要です。

于 2013-02-24T16:12:46.127 に答える