Powershell 无法将参数绑定到参数';路径';因为它是一个空数组

Powershell 无法将参数绑定到参数';路径';因为它是一个空数组,powershell,csv,Powershell,Csv,这是我的.CSV文件: 我使用以下代码从.CSV读取数据。从表中读取的数据将转换为正态变量,以便我可以进行一些计算 $ScriptPath = Split-Path $MyInvocation.MyCommand.Path $TransportOptions = $ScriptPath + "\TransportOptions.csv" $TransportOptionsID = @() $TransportOptions = @() $TransportEnergy = @() $CO2

这是我的.CSV文件:

我使用以下代码从.CSV读取数据。从表中读取的数据将转换为正态变量,以便我可以进行一些计算

$ScriptPath = Split-Path $MyInvocation.MyCommand.Path
$TransportOptions = $ScriptPath + "\TransportOptions.csv"

$TransportOptionsID = @()
$TransportOptions = @()
$TransportEnergy = @()
$CO2 = @()

Import-Csv $TransportOptions |`
ForEach-Object {
    $TransportOptionsID += $_."TransportOptionsID"
    $TransportOptions += $_.TransportOptions
    $TransportEnergy += $_.TransportEnergy
    $CO2 += $_.CO2
}

$InputID = Read-Host -Prompt "TransportOptionsID"

if ($TransportOptionsID -contains $InputID)
{
    $Where = [array]::IndexOf($TransportOptionsID, $InputID)
    $InputName = $TransportOptions[$Where] 

    if ($TransportOptions -contains $InputName)
    {
        $Where = [array]::IndexOf($TransportOptions, $InputName)
        $InputEnergy = $TransportEnergy[$Where] 
        $HTransportEnergy = [double]$InputEnergy

        if ($TransportEnergy -contains $InputEnergy)
        {
            $Where = [array]::IndexOf($TransportEnergy, $InputEnergy)
            $CO2transport = [double]$CO2[$Where]
        }
    }
}
但我得到的是错误:

ERROR: Import-Csv : Cannot bind argument to parameter 'Path' because it  is an empty array.
ERROR:
CO2estimatorUserInputs.ps1 (132, 11): ERROR: At Line: 132 char: 11
ERROR: + Import-Csv <<<<  $TransportOptions |`
ERROR:     + CategoryInfo          : InvalidData: (:) [Import-Csv], ParameterBindingValidationException
ERROR:     + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyArrayNotAllowed,Microsoft.PowerShell.Commands.ImportCsvCommand
ERROR:
错误:导入Csv:无法将参数绑定到参数“Path”,因为它是空数组。
错误:
CO2estimatorUserInputs.ps1(132,11):错误:在第132行字符:11

错误:+导入Csv是的,您遗漏了一些内容:

$TransportOptions = $ScriptPath + "\TransportOptions.csv"

$TransportOptions = @() # This

Import-Csv $TransportOptions |`

您为变量分配了CSV路径,然后将其重新分配为空数组,然后尝试将其传递给
导入CSV

是的,您遗漏了一些内容:

$TransportOptions = $ScriptPath + "\TransportOptions.csv"

$TransportOptions = @() # This

Import-Csv $TransportOptions |`
将变量指定为CSV路径,然后将其重新指定为空数组,然后再尝试将其传递到
导入CSV