テキストやコードなどの 100 万ファイル弱を検索して一致を見つけ、特定の文字列パターンのすべてのヒットを CSV ファイルに出力するスクリプトを作成する必要があります。
これまでのところ、これを作成しました。
$location = 'C:\Work*'
$arr = "foo", "bar" #Where "foo" and "bar" are string patterns I want to search for (separately)
for($i=0;$i -lt $arr.length; $i++) {
Get-ChildItem $location -recurse | select-string -pattern $($arr[$i]) | select-object Path | Export-Csv "C:\Work\Results\$($arr[$i]).txt"
}
これにより、「foo」という単語を含むすべてのファイルのリストを含む「foo.txt」という名前の CSV ファイルと、「bar」という単語を含むすべてのファイルのリストを含む「bar.txt」という名前のファイルが返されます。
このスクリプトを最適化して動作を高速化する方法はありますか? または、まったく異なるが、より高速に動作する同等のスクリプトを作成する方法についてのアイデアはありますか?
すべての入力に感謝します!