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


$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:“路径到文件夹”

P_LKC_MW_PATH:“路径到文件夹”

P_BKC_PATH:“PathToFolder”

TB1_LKC_PATH:“路径到文件夹”

最佳答案

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

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

关于powershell - Powershell解析错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39434757/

10-13 08:35