$data = @" 3084302012306380 3084302012306711 3084302012309459 3084302012309475 3084302012309509 3084302012309525 3084302012309574 "@ $cards = $data.Split("`r`n", [System.StringSplitOptions]::RemoveEmptyEntries) foreach($card in $cards ) { Write-Verbose -Verbose "Processing $card" $pattern1 = $card.Substring('308430'.Length) $pattern1 = $pattern1.Remove($pattern1.Length-1, 1) $pattern2 = "" for($i = 0; $i -lt $pattern1.Length; $i++) { $pattern2 += $pattern1[$i] if($i -ne 0 -and ($i+1) % 3 -eq 0) { $pattern2 += " " } } $items = Get-Item "\\rejk-p-bcm001\d-drive\ifsbosystem\log\CardClosure*" Write-Verbose -Verbose "Processing $($items.Count) items" $items | Select-String -Pattern $pattern1 $items | Select-String -Pattern $pattern2 $items = Get-Item "\\rejk-p-bcm002\d-drive\ifsbosystem\log\CardClosure*" $items | Select-String -Pattern $pattern1 $items | Select-String -Pattern $pattern2 }