我正在尝试使用下面的代码解析ini文件, 但我收到以下错误:
new-variable:一个名为' FromConfig'的变量。已经存在。 + 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"
答案 0 :(得分:2)
错误很好地解释了什么是错的:你正在尝试创建一个已经存在的变量
所以一个解决方案是查看你的.ini文件(你可能想要添加到你的问题中),如果有重复的密钥并试图摆脱它们或只是用-Force
覆盖现有的变量
...
New-Variable -Force -Name $Variable_NME -Value $VariableValue_STR
...
答案 1 :(得分:0)
问题在于这一行:
new-variable -name $ Variable_NME -value $ VariableValue_STR
您已经拥有一个名为$ variable_nme的变量,并且在new-variable命令中,您应该使用-name variable_nme
而没有$
符号,当然还有新名称。