我試圖使用Power Shell從多個文件中提取記錄,我編寫的腳本正在遍歷每個文件並將匹配模式的記錄寫入輸出文件。但由於文件數量龐大,這需要很長時間使用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
謝謝@Robin。讓我看看 –
你使用的是什麼版本的PowerShell('$ PSVersionTable.PSVersion.Major')? –