在powershell中导入csv内存不足异常

1 powershell

我正在尝试导入存储在位置的 csv 文件。所有文件的大小都不同,其中包含 1 KB 到 15 KB 或更多。因此,当我尝试使用以下脚本导入该文件时,出现内存不足异常。

$DataImport=Import-Csv -Path (Get-ChildItem $CsvFilePath)

$DataTable=Out-DataTable -InputObject $DataImport

Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username 

$Username -Password $Password -Data $DataTable
Run Code Online (Sandbox Code Playgroud)

为了避免 OOM 异常,csv 文件的最大行数是多少?有没有其他更好的方法来处理这种情况。我看到帖子使用 fgetcsv 命令逐行读取。但时间长了吧??

请给我你的建议。提前致谢

Bar*_*ekB 5

查看Out-DataTable语法:它很可能是管道友好的。因此,您可以轻松地简化流程,而不是“吸入”整个 CSV 到变量中:

Import-Csv -Path (Get-ChildItem $CsvFilePath) | Out-DataTable
Run Code Online (Sandbox Code Playgroud)

限制:我不知道,但管道通常可以帮助您:它不会将整个内容存储在内存中,因此即使您没有足够的东西,它也有可能会正常工作。