【PowerShell】テキストファイル内の文字列を検索する方法
Windows環境で便利なテキストエディタが使えないときに、 PowerShellでテキスト検索する方法。
検索①:指定したフォルダ(サブフォルダを含まない)内のテキストを検索
✏スクリプト
$TargetPath="C:\TEMP\*.txt"; $ScanPhrase="hoge"; Select-String -Path $TargetPath -Pattern $ScanPhrase -Encoding default
☝スクリプトの説明
♦1行目:
$TargetPath="C:\TEMP\*.txt";検索対象のファイルパス(C:\TEMP\*.txt)を指定。
♦2行目:
$ScanPhrase="hoge";検索する文字列を指定。ここでは文字列 "hoge" を検索。
♦3行目:
Select-String -Path $TargetPath -Pattern $ScanPhrase -Encoding default検索対象のファイル(C:\TEMP\*.txt)のうち、文字列 "hoge"を含むファイルを検索。
「-Encoding default」は日本語環境であれば「Shift-JIS」を読み込む。「UTF8」であれば「-Encoding UTF8」
検索②:サブフォルダを含む特定フォルダ内のテキスト検索
✏スクリプト
$TargetPath="C:\TEMP"; $TargetFile="*.txt"; $ScanPhrase="hoge"; dir $TargetPath -Recurse -Filter $TargetFile | Select-String -Pattern $ScanPhrase -Encoding default
☝スクリプトの説明
♦1行目:
$TargetPath="C:\TEMP";検索対象のフォルダ(C:\TEMP)と、検索対象のファイル(*.txt)を指定。
♦2行目:
$TargetFile="*.txt";検索対象のファイル名称の条件を指定。ここでは拡張子.txt のファイルを検索対象のファイルと指定。
♦3行目:
$ScanPhrase="hoge";検索する文字列を指定。ここでは文字列 "hoge" を検索。
♦4行目:
dir $TargetPath -Recurse -Filter $TargetFile | Select-String -Pattern $ScanPhrase -Encoding defaultパイプラインで処理を結合。
① 「dir $TargetPath -Recurse -Filter $TargetFile」で、「C:\TEMP」配下のサブフォルダを含むフォルダ内にある、ファイル名が「*.txt」となるファイルの一覧を取得。
② ①で検索したファイル内に "hoge" を含むテキストを検索。
コメント
コメントを投稿