No doubt you already use PowerShell for a wide range of tasks and consequently are already familiar working with PowerShell objects?
This post explains how to turn the contents of a file into a PowerShell object. You can then use this object for whatever you need. Say you have a file in C:\data\ with the content:
hostname=file-server-1 os=Windows 2012R2 location=Digbeth city=Birmingham installed=01-06-2015 active=yes
Now you create a PowerShell function that will take the above content and split into a key:value set of data. If the file is delimited by a character other than “=” then just change it in the code below:
function Get-Details {
$properties = @{}
Get-Content $ENV:SYSTEMDRIVE\data\serverdetails | ForEach-Object {
$property = $_ -Split "=", 2
$properties.Add($property[0], $property[1])
}
return $properties
}
Run Get-Details
to retrieve the entire object or if you rather put the object in a variable run: $details = Get-Details
If you have the object in a variable it makes it easier to retrieve specific values, for example you could use the below bit of code to print the hostname and city if it’s active:
if ($details.active -eq "yes") { Write-Output "$details.hostname is active in $details.city" }
The possibilities are endless, certainly this has given enough of an insight to spark your imagination ?
Finally check out my other similar blog post:
Using jq in Bash to manage JSON content
Be First to Comment