ファイルからテキストを取得する際に問題が発生しました。これが私が最終的にやりたいことです:
- 特定のファイルを検索して、「NoRequest」というフレーズのインスタンスを探します。
- NoRequest の値のみを使用してください。つまり、NoRequest = true の場合、行全体ではなく、配列に「true」のみが追加されます。
- ファイル内のフレーズのインスタンスごとにこれを行います。
ここに私が取り組んでいるセクションのスニペットがあります:
$FileContents = Select-String -Path "C:\Users\me\Documents\file.ini" -Pattern "NoRequest"
その行を使用すると、次のようになります。
PS> $FileContents Documents\file.ini:222:NoRequest = false Documents\file.ini:281:NoRequest = false Documents\file.ini:347:NoRequest = false Documents\file.ini:387:NoRequest = false Documents\file.ini:1035:NOREQUEST = true Documents\file.ini:1047:NoRequest = true Documents\file.ini:1160:NOREQUEST = true Documents\file.ini:1242:NOREQUEST = true
これは私が取得したいものです:
PS> $FileContents 間違い 間違い 間違い 間違い 真実 真実 真実 真実
コードをソリューションにパイプしようとしましたSelect-Object -Last 1
が、変数が配列であるため、各行の最後の単語ではなく、配列の最後の行が選択されます。また、配列を取得して、「配列内の foreach 行、最後の単語以外をすべて切り取る」ことも考えました。それはうまくいくと思いますが、不器用な解決策になるようです。これには簡単で効果的な解決策があると確信していますが、私はそれを見ていません。