ConvertTo-Metric.ps1
function ConvertTo-Metric { <# .Synopsis Converts units from imperial to metric .Description Converts a variety of units from imperial to metric .Example ConvertTo-Metric 1 pound #> [OutputType([PSObject])] param( # The value to convert into metric [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=0)] [Double]$Value, # The unit the value is in [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,Position=1)] [ValidateSet('Inch','Inches','Foot','Feet','Yard','Yards','Mile','Miles', 'Pound', 'Pounds', 'Lb', 'Lbs', 'In', 'Mi', 'Ft')] [string]$Unit ) process { switch ($unit) { { 'Inch', 'Inches', 'In' -contains $_ } { New-Object PSObject | Add-Member NoteProperty mm ($value * 25.4) -PassThru | Add-Member NoteProperty cm ($value * 2.54) -PassThru | Add-Member NoteProperty m ($value * .0254) -PassThru | Add-Member NoteProperty km ($value * .0000254) -PassThru } { 'Foot', 'Feet', 'Ft' -contains $_ } { New-Object PSObject | Add-Member NoteProperty mm ($value * 304.8) -PassThru | Add-Member NoteProperty cm ($value * 30.48) -PassThru | Add-Member NoteProperty m ($value * .3048) -PassThru | Add-Member NoteProperty km ($value * .0003048) -PassThru } { 'Yard', 'Yards' -contains $_ } { New-Object PSObject | Add-Member NoteProperty km ($value * .0009144) -PassThru | Add-Member NoteProperty m ($value * .9144) -PassThru | Add-Member NoteProperty cm ($value * 91.44) -PassThru | Add-Member NoteProperty mm ($value * 914.4) -PassThru } { 'Mile', 'Miles', 'Mi' -contains $_ } { New-Object PSObject | Add-Member NoteProperty km ($value * 1.609) -PassThru | Add-Member NoteProperty m ($value * 1609) -PassThru | Add-Member NoteProperty cm ($value * 160900) -PassThru | Add-Member NoteProperty mm ($value * 1609000) -PassThru } { 'Pound', 'Pound', 'Lbs', 'Lb' -contains $_ } { New-Object PSObject | Add-Member NoteProperty mg ($value * 4536000) -PassThru | Add-Member NoteProperty g ($value * 4536) -PassThru | Add-Member NoteProperty kg ($value * .4536 ) -PassThru } { 'Ton', 'Tons', 'Tn' -contains $_ } { New-Object PSObject | Add-Member NoteProperty mg ($value * 900000000) -PassThru | Add-Member NoteProperty g ($value * 900000) -PassThru | Add-Member NoteProperty kg ($value * 900 ) -PassThru } } } } |