最近アプリケーションのインストール有無を検出して、その結果に応じて違う処理を行うという用事がありました。Powershellで自動的に判定と処理が行えたのでまとめておきます。
アプリケーションのインストール有無を検出する方法はいくつか考えられましたが、最も単純な”そのアプリケーションの実行ファイルが存在するか否か”を検出することにしました。
Test-Pathというコマンドレットがパスやファイルの有無を検出するのに使えそうだったので、以下のようなスクリプトにしてみました。
<Powershell>
#C:\Program Files\hoge\hoge.exeの検出
$Appexist = Test-Path 'C:\Program Files\hoge\hoge.exe'
#検出結果による分岐
if($Appexist -eq $true){
#存在した時の処理
}else{
#存在しなかった時の処理
}
こんな感じで大丈夫でした。Test-Pathの結果を変数に格納すると、パスやファイルが存在した場合はTrue、存在しない場合はFalseが代入されます。
Test-Pathはパス以外にも今回のように個別のファイルやレジストリエントリの存在も検出できるそうなので、かなり応用が利きそうなコマンドレットです。