Powershell 解析错误

Powershell parse error

我正在尝试使用以下代码解析 ini 文件, 但我收到以下错误:

new-variable : A variable with name 'FromConfig' already exists. + new-variable -name $Variable_NME -value $VariableValue_STR + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceExists: (TB1_LKC_PATH:String) [New-Variable], SessionStateException + FullyQualifiedErrorId : VariableAlreadyExists,Microsoft.PowerShell.Commands.NewVariableCommand

$IniFile_NME="$PSScriptRoot\SanityTests\Config\ConfigToParse.ini"

dir $IniFile_NME

########################################
#
# Parse the file
#
########################################


$InputFile = [System.IO.File]::OpenText("$IniFile_NME")

while($InputRecord = $InputFile.ReadLine())
    {
        # Display the current record

        write-host "`$InputRecord=$InputRecord"
        write-host ""

        # Determine the position of the sign (:)

        $Pos = $InputRecord.IndexOf(':')
        write-host "`$Pos=$Pos"

        # Determine the length of the record

        $Len = $InputRecord.Length
        write-host "`$Len=$Len"

        # Parse the record

        $Variable_NME = $InputRecord.Substring(1, $Pos -1)
        $VariableValue_STR = $InputRecord.Substring($Pos + 1, $Len -$Pos -1)

        write-host "`$Variable_NME=$Variable_NME"
        write-host "`$VariableValue_STR=$VariableValue_STR"

        # Create a new variable based on the parsed information

        new-variable -name $Variable_NME -value $VariableValue_STR
        get-variable -name $Variable_NME
    }
$InputFile.Close()

谢谢:)

添加配置文件:

PROJECT_TO_VALIDATE: J

FW_TESTED: LKC

FW_ALTERNATIVE: BKC

MW_TESTED:LKC

MW_ALTERNATIVE: BKC

TB1_TESTED: BKC

L_LKC_FW_PATH: "PathToFolder"

L_LKC_MW_PATH: "PathToFolder"

L_BKC_PATH: "PathToFolder"

J_LKC_FW_PATH: "PathToFolder"

J_LKC_MW_PATH: "PathToFolder"

J_BKC_PATH: "PathToFolder"

P_LKC_FW_PATH: "PathToFolder"

P_LKC_MW_PATH: "PathToFolder"

P_BKC_PATH: "PathToFolder"

TB1_LKC_PATH: "PathToFolder"

这个错误很好地解释了问题所在:您正在尝试创建一个已经存在的变量。
因此,一种解决方案是查看您的 .ini 文件(您可能想将其添加到您的问题中)是否有重复的键并尝试删除它们或只是用 -Force 覆盖现有变量,就像这样

...
New-Variable -Force -Name $Variable_NME -Value $VariableValue_STR
...

问题出在这一行:

新变量-名称$Variable_NME-值$VariableValue_STR

您已经有一个名为 $variable_nme 的变量,在新变量命令中您应该使用没有 $ 符号的 -name variable_nme,当然还有一个新名称。