【问题标题】:capture data from ini file PowerShell从 ini 文件 PowerShell 中捕获数据
【发布时间】:2013-12-30 08:28:37
【问题描述】:
我想解析一个 ini 文件并从一个部分捕获数据。基本上我正在尝试捕获安装在 1000 多台服务器上的 AV 版本。 ini 文件包含“Program_Version”。此变量包含版本号。如果我使用 Program_Version= 进行搜索,我会直接在“=”符号后面找到包含版本号的短语。比如 8.0、10.6 等
有人可以指导我如何实现这一目标吗?
谢谢
【问题讨论】:
标签:
powershell
powershell-2.0
ini
【解决方案1】:
这是我使用的功能:
function Parse-IniFile
{
[CmdletBinding()]
Param
(
[Parameter(mandatory=$true,ValueFromPipeline=$true)]
[Alias("Fichier")]
[string]$fic
)
begin {}
Process
{
$ini = @{}
switch -regex -file $fic
{
"^\[(.+)\]$"
{
$section = $matches[1]
$ini[$section] = @{}
}
"(.+)=(.+)"
{
$name,$value = $matches[1..2]
$ini[$section][$name] = $value
}
}
return $ini
}
end {}
}
给定一个来自“C:\Windows\System32\DriverStore\FileRepository”目录树的 INI 文件。
$p = Parse-IniFile "C:\Windows\System32\DriverStore\FileRepository\adihdaud.inf_amd64_neutral_66552f06054bc4ee\Mixer.ini"
$p["FRENCH"]["KSPINNAME_ADI_ALT_PCBEEP_SOURCE"]
给予
"Bip PC"