我有一个INI文件,其配置如下:
[Applications]
app1= aplication1
app2= aplication2
[BBDD]
server_bbdd = name_bbdd
[DATA]
data_dir = c:\data\
[LOGS]
data_log = c:\data\log\
我需要使用PowerShell脚本读取和加载应用程序数据。例如,对于app1,我需要将此应用程序的所有数据加载到数据库中(是一个SQL-SERVER BBDD),然后对app2执行相同的操作。
如何使用PowerShell读取和加载应用程序数据?
答案 0 :(得分:0)
您可以像使用哈希一样使用ini文件并创建哈希表并将它们放入变量中。 例如 $ Applications = @ {“app1”=“aplication1”;“app2”=“aplication2”}
这个读取使用函数将读取ini文件并将这些部分分开,这些部分名称来自部分值。 我们将它读取到内存中的哈希值,您以后需要它才能输出。 "切换-regex"用于处理多个if语句。 -regex将match子句视为正则表达式(正则表达式,即RegEx字符:^。[] - g G?+ * p P w W s s d D $)。
N
之后,您可以将其读取到变量,从而将这些变量输出到文件或其他内容。
function Get-IniContent ($filePath)
{
$ini = @{}
switch -regex -file $FilePath
{
"^\[(.+)\]" # Find Sections
{
$section = $matches[1]
$ini[$section] = @{}
$CommentCount = 0
}
"^(;.*)$" # Find Comments
{
$value = $matches[1]
$CommentCount = $CommentCount + 1
$name = "Comment" + $CommentCount
$ini[$section][$name] = $value
}
"(.+?)\s*=(.*)" # Find Keys
{
$name,$value = $matches[1..2]
$ini[$section][$name] = $value
}
}
return $ini
}