希望有人可以提供建议来帮助我加快 Powershell 脚本的速度。我正在做的是读取数百个 CSV 文件,解析信息以获取有关丢失条目的数据,然后将该输出写入 HTML 文件。这是我用来处理文件的循环:
ForEach ($Filename in $FileList) {
$CustTemp = import-csv "$FilePath\$Filename"
$CustName = $CustTemp[0].CustName
Write-Host "Reading data for $CustName"`r
For ($counter=0;$counter -lt 31;$counter++){
$CheckDate = (get-date).AddDays(-$counter)
$CheckShortDate = $CheckDate.ToShortDateString()
$TempData = import-csv "$FilePath\$Filename" | Select FileName,FileDate | where {$_.FileDate -eq $CheckShortDate}
If ($TempData -eq $null) {
$row = "No file found for $CheckShortDate for $CustName"
$HTMLReportItems += $row
}
$HTMLReportItems = $HTMLReportItems | ConvertTo-Html -Fragment
}
}
当我使用几个 CSV 文件进行测试时,这个循环运行良好,但是当针对大量文件(300+)运行它时,每个文件(30s-1m)的循环需要很长时间才能完成。我很确定 CSV 文件每次迭代被访问 30 次的原因。我希望有人会对我如何处理数据有更好的建议。