我在PowerShell中导入csv文件时遇到问题。我正在使用以下命令读取csv文件。
$CsvFilePath=“D:\MyShareOuts\*.csv”
$DataImport=Import-Csv -Path (Get-ChildItem $CsvFilePath)|Out-DataTable
Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username $Username -Password $Password -Data $DataImport
由于CsvFilePath
包含数千个大尺寸的文件,导入需要很长时间并且PowerShell会停止工作或在import-csv
代码行上长时间挂起。最后导入不会发生。任何人都可以提出有价值的解决方案,使其成功实现。
答案 0 :(得分:0)
尝试逐个处理文件而不是1000个处理文件?
$CsvFilePath=“D:\MyShareOuts\*.csv”
Get-ChildItem $CsvFilePath | Foreach-Object {
$DataImport = Import-Csv $_.FullName | Out-DataTable
Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username $Username -Password $Password -Data $DataImport
}
我还没有使用Out-/Write-Datable
,但它也可能支持这样的事情(非常未经测试):
$CsvFilePath=“D:\MyShareOuts\*.csv”
Get-ChildItem $CsvFilePath |
Import-Csv |
Out-DataTable | Foreach-Object {
Write-DataTable -ServerInstance $server -Database $Database -TableName $Table -Username $Username -Password $Password -Data $_
}