Powershell导入csv错误

Powershell导入csv错误,powershell,csv,Powershell,Csv,我尝试将导入csv与-erroraction SilentlyContinue一起使用,但当文件导入时仍会抛出错误: Import-Csv : The member "Id" is already present. At C:\Users\admin\Desktop\Parse.ps1:65 char:24 + ... $csvData = Import-Csv -LiteralPath $file.FullName -ErrorAction Silen ... +

我尝试将导入csv与-erroraction SilentlyContinue一起使用,但当文件导入时仍会抛出错误:

Import-Csv : The member "Id" is already present.
At C:\Users\admin\Desktop\Parse.ps1:65 char:24
+ ...  $csvData = Import-Csv -LiteralPath $file.FullName -ErrorAction Silen ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Import-Csv], ExtendedTypeSystemException
    + FullyQualifiedErrorId : AlreadyPresentPSMemberInfoInternalCollectionAdd,Microsoft.PowerShell.Commands.ImportCsvCommand
我也尝试过设置Erroractionpreference,但仍然会抛出错误


其他人看到了这一点或知道如何避开它吗?

您的CSV似乎有多个具有相同值的标题。您看到的错误是终止错误
-ErrorAction
$ErrorActionPreference
不会更改终止错误的行为。您可以使用
try catch
响应终止错误

try {
    $csvData = Import-Csv -LiteralPath $file.FullName
}
catch {
    # Add response code here
}
在某些情况下,
-ErrorAction
用于终止非终止错误,以便从终止错误的角度进行错误和异常处理

try {
    $csvData = Import-Csv -LiteralPath $file.FullName
}
catch {
    # Add response code here
}

有关
$ErrorActionPreference
变量和公共参数
ErrorAction

的预期用法,请参阅。您的CSV文件是否有两个同名的列/标题?由于这是一个终止错误,您可以使用try-catch使其消失。。下一行是IF($error),然后我通过将第一行拆分为一个标题并使用添加的数字重命名重复项来解析CSV。Try/catch虽然有效,但如果你把评论作为解决方案发布,我会接受。啊,这很有道理。我不知道终止错误不会受到erroraction的影响。谢谢