I am trying to pull data from a .ini file using the PSIni module command Get-IniContent. I have a script that works but it generates more data than I need.
My ini file looks like this:
[General settings]
gensetting1=random
gensetting2=random
gensetting3=random
[KPROD]
setting1=1
setting2=2
setting3=3
setting4=4
[KTEST]
setting1=1
setting2=2
setting3=3
setting4=4
[KDEV]
setting1=1
setting2=2
setting3=55
setting4=4
I would like to exclude anything from [General settings] from my output. The only data I want to see is the [KPROD] section keys and values and any values from the [KDEV] and [KTEST] sections that are different to those in [KPROD].
Here is my current code:
ipmo psini
$ini = Get-IniContent "C:\Temp\test1.ini"
Foreach ($key in $ini.keys) {
Write-Host $key ;
Write-Host "Settings1 and Settings2 are set to:"
($ini[$key].GetEnumerator() | Where-Object {
$_.key -like "Setting1" -or
$_.key -like "Setting2" } | Format-Table -HideTableHeaders | Out-
String).trim();
Write-Host "Setting3 is set to: " ;
($ini[$key].GetEnumerator() | Where-Object {
$_.key -like "Setting3" } | Format-Table -HideTableHeaders | Out-
String).trim();
Write-Host "Setting4 is set to:" ;
($ini[$key].GetEnumerator() | Where-Object {
$_.key -like "Setting4" } | Format-Table -HideTableHeaders | Out-
String).trim();
Write-host ""
}
Read-Host -Prompt "Press Enter to exit"
Here is the result currently:
General settings
Settings1 and Settings2 are set to:
Setting3 is set to:
Setting4 is set to:
KPROD
Settings1 and Settings2 are set to:
setting1 1
setting2 2
Setting3 is set to:
setting3 3
Setting4 is set to:
setting4 4
KTEST
Settings1 and Settings2 are set to:
setting1 1
setting2 2
Setting3 is set to:
setting3 3
Setting4 is set to:
setting4 4
KDEV
Settings1 and Settings2 are set to:
setting1 1
setting2 2
Setting3 is set to:
setting3 55
Setting4 is set to:
setting4 4
Press Enter to exit:
I would like the output to look like the following:
KPROD
Settings1 and Settings2 are set to:
setting1 1
setting2 2
Setting3 is set to:
setting3 3
Setting4 is set to:
setting4 4
KMDEV
Setting3 is set to:
setting3 55