【问题标题】:Powershell parse errorPowershell解析错误
【发布时间】:2017-01-18 23:21:09
【问题描述】:

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

new-variable:名称为“FromConfig”的变量已存在。 + 新变量 -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"

【问题讨论】:

    标签: powershell parsing ini


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      问题出在这一行:

      新变量 -name $Variable_NME -value $VariableValue_STR

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

      【讨论】:

      • 这将导致创建所有名为“variable_nme”的变量,这将更快地导致原始错误,因为所有变量都将具有相同的名称
      • 也许我没有说清楚,编辑了答案。
      猜你喜欢
      • 2015-11-29
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 2017-10-11
      相关资源
      最近更新 更多