一連のファイルの末尾にデータを追加するために、powershell スクリプトを使用しています。各ファイルは約 50Mb (たとえば 200 万行) の CSV で、約 50 個のファイルがあります。
私が使用しているスクリプトは次のようになります。
$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時間かかります。それほど複雑ではないので、実行にそれほど時間がかかるとは思いません。スピードアップするにはどうすればよいですか?