I am trying to pull data from a .ini
file using the PSIni (Get-IniContent
). I have a format that works but generates too much data. 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 being populated in my output. As they show up blank because I do not need to gather that information as I specify in my code below. The only data I care to see is [KPROD]
keys and values, but if the values are different in [KDEV]
and [KTEST]
I would like to display the values that do not match. Here is my current code:
Import-Module psini
$ini = Get-IniContent "D:\PShell\SF\871753.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"
The results displayed are as shown here as you can see with a .ini
file with 6 keys and 20 keys within, this list gets very long.
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:
Is it even possible to achieve my goal? I would love for it to just look like...
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