Script: *locate-city.ps1* ======================== This PowerShell script prints the geographic location of the given city. Parameters ---------- ```powershell PS> ./locate-city.ps1 [[-city] ] [] -city Specifies the name of the city to look for Required? false Position? 1 Default value Accept pipeline input? false Accept wildcard characters? false [] This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer, PipelineVariable, and OutVariable. ``` Example ------- ```powershell PS> ./locate-city.ps1 Amsterdam * Amsterdam (United States, New York, population 21241) is at 42.9420°N, -74.1907°W * Amsterdam (Netherlands, Noord-Holland, population 1031000) is at 52.3500°N, 4.9166°W ``` Notes ----- Author: Markus Fleschutz | License: CC0 Related Links ------------- https://github.com/fleschutz/PowerShell Script Content -------------- ```powershell <# .SYNOPSIS Prints the geographic location of a city .DESCRIPTION This PowerShell script prints the geographic location of the given city. .PARAMETER city Specifies the name of the city to look for .EXAMPLE PS> ./locate-city.ps1 Amsterdam * Amsterdam (United States, New York, population 21241) is at 42.9420°N, -74.1907°W * Amsterdam (Netherlands, Noord-Holland, population 1031000) is at 52.3500°N, 4.9166°W .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> param([string]$city = "") try { if ($city -eq "" ) { $city = Read-Host "Enter the name of the city" } Write-Progress "Reading data/worldcities.csv..." $table = Import-CSV "$PSScriptRoot/../data/worldcities.csv" $foundOne = 0 foreach($row in $table) { if ($row.city -eq $city) { $foundOne = 1 $country = $row.country $region = $row.admin_name $lat = $row.lat $long = $row.lng $population = $row.population Write-Host "* $city ($country, $region, population $population) is at $lat°N, $long°W" } } if (-not $foundOne) { throw "No city '$city' found in database" } exit 0 # success } catch { "⚠️ Error $($_.InvocationInfo.ScriptLineNumber): $($Error[0])." exit 1 } ``` *(generated by convert-ps2md.ps1 using the comment-based help of locate-city.ps1 as of 05/19/2024 10:25:23)*