我正在尝试使用下面的代码解析一个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/