title: How to use FINDSTR in PowerShell to find lines where all words in the search string match in any order
body: <p>The following <code>findstr.exe</code> command <em>almost</em> does what I want, but not quite:</p>
  
  <pre><code>findstr /s /i /c:"word1 word2 word3" *.abc
  </code></pre>
  
  <p>I have used: </p>
  
  <ul>
  <li><code>/s</code> for searching all subfolders.</li>
  <li><code>/c:</code> 
  
  <blockquote>
    <p>Uses specified text as a literal search string</p>
  </blockquote></li>
  <li><code>/i</code> Specifies that the search is not to be case-sensitive.</li>
  <li><code>*.abc</code> Files of type abc.</li>
  </ul>
  
  <p>The above looks for <code>word1 word2 word3</code> as a <em>literal</em>, and therefore only finds the words in <em>that exact order</em>.</p>
  
  <p>By contrast, <strong>I want <em>all</em> words to match <em>individually</em>, in <em>any order</em> (AND logic, conjunction)</strong>.</p>
  
  <p>If I remove <code>/c:</code> from the command above, then lines matching <em>any</em> of the words are returned (OR logic, disjunction), which is not what I want.</p>
  
  <p>Can this be done in PowerShell?</p>