我想解析一個ini文件並從一個部分捕獲數據。基本上我試圖捕獲安裝在1000多臺服務器上的AV版本。 ini文件包含「Program_Version」。該變量包含版本號。如果我使用Program_Version =進行搜索,則直接在「=」符號後面找到包含版本號的短語。像8.0,10.6等從ini文件捕獲數據PowerShell
有人可以請指導我如何實現這一目標嗎?
感謝
我想解析一個ini文件並從一個部分捕獲數據。基本上我試圖捕獲安裝在1000多臺服務器上的AV版本。 ini文件包含「Program_Version」。該變量包含版本號。如果我使用Program_Version =進行搜索,則直接在「=」符號後面找到包含版本號的短語。像8.0,10.6等從ini文件捕獲數據PowerShell
有人可以請指導我如何實現這一目標嗎?
感謝
.ini文件通常是key = value對,那是很容易轉換爲使用ConvertFrom-StringData是
Read a properties file in powershell
哈希表從那裏,它只是一個讀取值事從散列表中散列Program_Version密鑰。
這裏是我使用的功能:目錄樹:
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 {}
}
給出從 「\ Windows \ System32下\ DriverStore \ FileRepository文件C」 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"