Powershellで関数の実行結果のうち、特定の文字が含まれているかを調べたい(んだと思う)

1週間前に殴り書いた下書きなせいか、何をしたかったのか思い出せない…
あと、以下の記事ではなんか関数化しているけど、関数かどうかは特に関係なく使えると思う。
そして何で関数にしたのかも思い出せない。先週は残業祭りで嫌な記憶しかない…

【以下は1週間前に書いたらしい記事です(記憶喪失)】
元ファイル

function returntest() {
return "192,168,0,1", "タイムアウト", "ラウンド トリップ"
}

$hoge = @(returntest)
#Containsメソッドで検索するために配列に変換

$hoge[0]
$hoge[1]
$hoge[2]

if ($hoge.Contains("ラウンド")) {
Write-Host "戻り値にラウンド トリップが含まれています"
} else {
Write-Host "そんなものはない"
}

実行ファイル

. ".\\returntest.ps1"

if ($hoge[0] -eq "192,168,0,1") {
Write-Host "正解"
} else {
Write-Host "違います"
}

if ($hoge[1] -eq "タイムアウト") {
Write-Host "正解"
} else {
Write-Host "違います"
}

if ($hoge[2] -eq "ラウンド トリップ") {
Write-Host "正解"
} else {
Write-Host "違います"
}

@()で括って配列化したものを、Containsメソッドで検索させる。全角(日本語)、半角スペース、カンマ問題なく検索可能。
これでもできるっちゃできるが、Containsでは部分検索ができないようで、該当の文字列に完全一致しないとFalseになる。

色々やってみたら、別に配列にしなくても、match演算子をつければ検索できた。
これなら、無理矢理配列にする必要もない。

改修後

function returntest2() {
return "192,168,0,1", "タイムアウト", "ラウンド トリップ"
}

$hoge = returntest2
#-matchで部分検索ができることがわかったので、配列化は不要

$hoge[0]
$hoge[1]
$hoge[2]

if ($hoge -match "192,168,0,1") {
Write-Host "戻り値にIPアドレスが含まれています"
} else {
Write-Host "そんなものはない"
}

ファイルの中身を検索する場合は、Get-Contentを変数に格納する

$file = Get-Content "C:\tmp\20190305\param.txt"
#paramの中にはpingとか書いてある

if ($file -match "ping") {
Write-Host "ありまぁす!"
} else {
Write-Host "そんなものはない"
}