Here is an updated version of my state abbreviation function, with changes prompted by Jeffery Hicks.
I’ve also added the Canadian provinces to the mix. The main change (apart from changing the name of the function to conform to the conventional Powershell verb-noun nomenclature), is to add the CmdletBinding section to specify a single parameter which needs to be supplied to run the function. The neat thing about this is that if you issue the command without the parameter it will automatically prompt for input.
function Get-StateAbbreviation { # # Takes upper, lower, or mixed case state name # and return the two-letter abbreviation. # LK 3/17/15 rev. 3/26/15 per Jeffery Hicks # Still To Do: # 1. Full documentation # 2. Allow input from the pipeline # 3. Place in a module # Example calls: # Get-StateAbbreviation Vermont <-don't use parentheses # Get-StateAbbreviation -StateName Vermont # Get-StateAbbreviation "Vermont" # Get-StateAbbreviation $MyStateName # Note that this function has to appear before it is called in the code # if it isn't part of a module. [CmdletBinding()] param ( [Parameter(Mandatory=$True)] [string]$StateName ) Switch ($StateName.ToUpper()) { ($StateName="ALABAMA") {$shortenState="AL"} ($StateName="ALASKA") {$shortenState="AK"} ($StateName="ARIZONA") {$shortenState="AZ"} ($StateName="ARKANSAS") {$shortenState="AR"} ($StateName="CALIFORNIA") {$shortenState="CA"} ($StateName="COLORADO") {$shortenState="CO"} ($StateName="CONNECTICUT") {$shortenState="CT"} ($StateName="DELAWARE") {$shortenState="DE"} ($StateName="FLORIDA") {$shortenState="FL"} ($StateName="GEORGIA") {$shortenState="GA"} ($StateName="HAWAII") {$shortenState="HI"} ($StateName="IDAHO") {$shortenState="ID"} ($StateName="ILLINOIS") {$shortenState="IL"} ($StateName="INDIANA") {$shortenState="IN"} ($StateName="IOWA") {$shortenState="IA"} ($StateName="KANSAS") {$shortenState="KS"} ($StateName="KENTUCKY") {$shortenState="KY"} ($StateName="LOUISIANA") {$shortenState="LA"} ($StateName="MAINE") {$shortenState="ME"} ($StateName="MARYLAND") {$shortenState="MD"} ($StateName="MASSACHUSETTS") {$shortenState="MA"} ($StateName="MICHIGAN") {$shortenState="MI"} ($StateName="MINNESOTA") {$shortenState="MN"} ($StateName="MISSISSIPPI") {$shortenState="MS"} ($StateName="MISSOURI") {$shortenState="MO"} ($StateName="MONTANA") {$shortenState="MT"} ($StateName="NEBRASKA") {$shortenState="NE"} ($StateName="NEVADA") {$shortenState="NV"} ($StateName="NEW HAMPSHIRE") {$shortenState="NH"} ($StateName="NEW JERSEY") {$shortenState="NJ"} ($StateName="NEW MEXICO") {$shortenState="NM"} ($StateName="NEW YORK") {$shortenState="NY"} ($StateName="NORTH CAROLINA") {$shortenState="NC"} ($StateName="NORTH DAKOTA") {$shortenState="ND"} ($StateName="OHIO") {$shortenState="OH"} ($StateName="OKLAHOMA") {$shortenState="OK"} ($StateName="OREGON") {$shortenState="OR"} ($StateName="PENNSYLVANIA") {$shortenState="PA"} ($StateName="RHODE ISLAND") {$shortenState="RI"} ($StateName="SOUTH CAROLINA") {$shortenState="SC"} ($StateName="SOUTH DAKOTA") {$shortenState="SD"} ($StateName="TENNESSEE") {$shortenState="TN"} ($StateName="TEXAS") {$shortenState="TX"} ($StateName="UTAH") {$shortenState="UT"} ($StateName="VERMONT") {$shortenState="VT"} ($StateName="VIRGINIA") {$shortenState="VA"} ($StateName="WASHINGTON") {$shortenState="WA"} ($StateName="WEST VIRGINIA") {$shortenState="WV"} ($StateName="WISCONSIN") {$shortenState="WI"} ($StateName="WYOMING") {$shortenState="WY"} ($StateName="WASHINGTON DC") {$shortenState="DC"} ($StateName="ALBERTA") {$shortenState="AB"} ($StateName="BRITISH COLUMBIA") {$shortenState="BC"} ($StateName="MANITOBA") {$shortenState="MB"} ($StateName="NEW BRUNSWICK") {$shortenState="NB"} ($StateName="NEWFOUNDLAND") {$shortenState="NL"} ($StateName="LABRADOR") {$shortenState="NL"} ($StateName="NORTHWEST TERRITORIES") {$shortenState="NT"} ($StateName="NOVA SCOTIA") {$shortenState="NS"} ($StateName="NUNAVUT") {$shortenState="NU"} ($StateName="ONTARIO") {$shortenState="ON"} ($StateName="PRINCE EDWARD ISLAND") {$shortenState="PE"} ($StateName="QUEBEC") {$shortenState="QC"} ($StateName="SASKATCHEWAN") {$shortenState="SK"} ($StateName="YUKON") {$shortenState="YT"} Default {$shortenState="XX"} } # Switch return $shortenState } # Function