パワーシェルを使用して複数のファイルからレコードを抽出しようとしています。しかし、これは膨大なファイル数のために長い時間がかかりますpowershellを使用して複数のファイルからレコードを抽出するスクリプトを最適化します
これを最適化できるかどうかを知りたいと思います。
$files = Get-ChildItem $sourcedirectory\*
for ($i=0; $i -lt $files.Count; $i++) {
$outfile = $files[$i].FullName + "_out"
Get-Content $files[$i].FullName| Select-String -Pattern "OB_[0-9]F_AHU*" | Set-Content $outfile
}
if (!(Test-Path -path $targetdirectory)) {New-Item $targetdirectory -Type Directory}
Move-Item -Path $sourcedirectory\*_out -Destination $targetdirectory
マルチスレッドのアプローチでは、PowerShellのジョブや実行領域を調べることをお勧めします。モジュールPoshRSJobsは便利です。それは、ランスペースで作業するための「仕事のような」方法を提供します。 – Robin
ありがとう@ロビン。私はそれをチェックしてみましょう –
あなたはどのバージョンのPowerShellを使っていますか( '$ PSVersionTable.PSVersion.Major')? –