So a few weeks back i came across this puzzle in an internal discussion list. There is a comma separated text file at AirportsGDM.txt containing all the airports and the codes, along with the Lang and Long Co-ordinates. The puzzle was to see how few lines of code you needed to write a program that would parse the file, find a specific airport, then display a local.live map displaying the airports location.

Sounded like something that Windows PowerShell should be able to do, in say hmm, i don't know, 1 line....

So first the final script

function Get-AirportMap
{
    param([string]$aircode)
    get-content D:\dev\airports\AirportsGDM.txt | select-string $aircode | 
foreach { $a = $_.Line.substring(0,$_.Line.Length-5).replace(",","~") ; [System.Diagnostics.Process]::Start("http://local.live.com/default.aspx?V=2&cp=$a&lvl=12")}
}

 

This of course assumes you have the text file located in the d:\dev\airports folder.

The command should be fairly straightforward and easy to figure out.

The content of the text file

get-content D:\dev\airports\AirportsGDM.txt

is pipedinto a selection

select-string $aircode

for each result we go and work out the co-ordinates

$a = $_.Line.substring(0,$_.Line.Length-5).replace(",","~") 

Then start a new process navigating to the local.live URL

[System.Diagnostics.Process]::Start("http://local.live.com/default.aspx?V=2&cp=$a&lvl=12")
Simple. and the results.
get-airportmap LAX
 
THIS POSTING IS PROVIDED "AS IS" WITH NO WARRANTIES, AND CONFERS NO RIGHTS