我正在使用powershell腳本將數據追加到一堆文件的末尾。 每個文件都是50Mb左右的CSV文件(說2百萬行),大約有50個文件。用於CSV修改的Slow Powershell腳本
腳本我使用看起來像這樣:
$MyInvocation.MyCommand.path
$files = ls *.csv
foreach($f in $files)
{
$baseName = [System.IO.Path]::GetFileNameWithoutExtension($f)
$year = $basename.substring(0,4)
Write-Host "Starting" $Basename
$r = [IO.File]::OpenText($f)
while ($r.Peek() -ge 0) {
$line = $r.ReadLine()
$line + "," + $year | Add-Content $(".\DR_" + $basename + ".CSV")
}
$r.Dispose()
}
問題是,這是非常緩慢的。大概需要12個小時才能完成。 這不是非常複雜,所以我不會指望它需要很長時間才能運行。 我能做些什麼來加快速度?
這是一個顯着的速度提升。謝謝。 – DX101
但是每次都會產生額外的換行符。我已經解決了這個問題(就目前而言),只是沒有使用if部分將每100行轉儲到一個文件中,並將其全部寫入最後。 – DX101