【AIによる回答】
PowerShellで、特定のキーワードにマッチした行とその直後の行を出力するには、Select-Stringコマンドレットの-Contextパラメータを使用するのが最も簡単で効率的です。基本コマンドpowershellSelect-String -Path "ファイルパス" -Pattern "検索キーワード" -Context 0,1
-Context 0,1: マッチした行の前(Before)に0行、後ろ(After)に1行を表示するという指定です。ITmedia +1具体的な使用例test.logというファイルから “ERROR” というキーワードを含む行と、その次の行を表示する場合:powershellSelect-String -Path "C:\path\to\test.log" -Pattern "ERROR" -Context 0,1結果の見方出力は以下のようになり、マッチした行には>マークが付きます。texttest.log:10: 通常の行 > test.log:11: ERROR: 文字列がマッチ test.log:12: マッチした行の次の行マッチした内容だけをきれいに表示する上のコマンドのままだと行番号などが含まれます。マッチしたテキストのみを抽出したい場合は、以下のようにパイプラインでSelect-Objectを使い、Contextプロパティを書き出します。powershellSelect-String -Path "test.log" -Pattern "ERROR" -Context 0,1 | Foreach-Object { $_.Line # マッチした行 $_.Context.PostContext # 下の行 }応用:ファイル内の検索ではなくコマンド結果に対して行う場合コマンドの結果(例:dir)に対してパイプラインで渡すことも可能です。powershelldir | Select-String -Pattern "マッチキーワード" -Context 0,1
