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