Two more possibilities:
$patterns = 'abc','def','ghi' $lines = 'abcdefghi','abcdefg','abcdefghijkl' :nextline foreach ($line in $lines) {foreach ($pattern in $patterns) {if ($line -notmatch $pattern){continue nextline} }$line} abcdefghi abcdefghijkl
This will lead to further string processing as soon as any of the patterns matches.
This works in the entire line at once, but in what foreach does:
$patterns = 'abc','def','ghi' $lines = 'abcdefghi','abcdefg','abcdefghijkl' foreach ($pattern in $patterns) {$lines = $lines -match $pattern} $lines abcdefghi abcdefghijkl
Substitute your content for test literals to populate $ lines.
source share