PowerShell,ファイルから文字列を検索して戻り値を取得

スポンサーリンク

鍛錬 561

PowerShell,ファイルから文字列を検索して、検索結果の戻り値を取得する

ファイルから文字列を検索して、一致した文字列が存在したか否かの戻り値を取得するには、Select-String にパラメータの -Quiet を付加して使用します。

以下は、コマンドレット Select-String のエイリアスです。

エイリアス
sls

 
使用方法は、以下に示す通りです。

sls 検索するパターン ファイルのパス -Quiet

パラメータ

以下は、上記のパラメータについてです。

パラメータ 機能
-Quiet 戻り値を取得する

戻り値

以下は、パラメータ -Quiet を付加した際の戻り値についてです。

結果 戻り値
一致する文字列が存在した True
一致する文字列が存在しなかった False
スポンサーリンク

サンプルファイル

以下は、今回検索の対象となるファイル、sample.txt です。

Apple
Orange
Grape
スポンサーリンク

スクリプト

以下は、検索結果の戻り値を取得するスクリプト、check_str.ps1 です。

今回は一致した場合と一致しなかった場合の両方について確認しています。

順番 検索する文字列 存在するか否か
1回目の検索 Orange 存在する
2回目の検索 XXXXXXYYYYYYZZZZZZ 存在しない
# 検索対象となるファイル名を格納
$file_path = "D:\tmp\sample.txt"



# 検索する文字列を格納
$search_str = "Orange"

# 文字列をファイルから検索
if (sls $search_str $file_path -Quiet) {
	echo "ファイル「$file_path」に文字列「$search_str」は存在する"
}
else {
	echo "ファイル「$file_path」に文字列「$search_str」は存在しない"
}



# 存在しない文字列を格納
$search_str = "XXXXXXYYYYYYZZZZZZ"

# 文字列をファイルから検索
if (sls $search_str $file_path -Quiet) {
	echo "ファイル「$file_path」に文字列「$search_str」は存在する"
}
else {
	echo "ファイル「$file_path」に文字列「$search_str」は存在しない"
}
スポンサーリンク

実行結果

以下は、スクリプト check_str.ps1 を実行しています。

PS D:\tmp>
PS D:\tmp> .\check_str.ps1
ファイル「D:\tmp\sample.txt」に文字列「Orange」は存在する
ファイル「D:\tmp\sample.txt」に文字列「XXXXXXYYYYYYZZZZZZ」は存在しない

 
上記に示した通り、文字列を検索して、検索結果の戻り値を取得することができました。

タイトルとURLをコピーしました