Командлет Get-Weather для получения погоды

Небольшой командлет PowerShell Get-Weather позволяющая получать погоду.
Работает просто. Получаем список городов, затем данные о погоде.

> Get-Weather -Country "Russia" -ListCities
> Get-Weather -Country "Russia" -City "Moscou"
      Function Get-Weather {
      < #  
      [cmdletbinding(
              DefaultParameterSetName = 'Weather',
              ConfirmImpact = 'low'
     )]
          Param(
              [Parameter(
              Mandatory = $True,
              Position = 0,
              ParameterSetName = '',
              ValueFromPipeline = $True)]
              [string]$Country,
            [Parameter(
                  Position = 1,
                  Mandatory = $False,
                  ParameterSetName = 'listcities')]
                  [switch]$ListCities,
           [Parameter(
                  Mandatory = $False,
                  ParameterSetName = '')]
                  [string]$City                      
               )
      Begin {
           $psBoundParameters.GetEnumerator() | % {  
           Write-Verbose "Parameter: $_"
              }    
  Try {
       #создаем соединение
               Write-Verbose "Create web proxy connection to weather service"
               $weather = New-WebServiceProxy 'http://www.webservicex.net/globalweather.asmx?WSDL'
               }
  Catch {
              Write-Warning "$($Error[0])"
              Break
              }        
           }
        Process {
          Switch ($PSCmdlet.ParameterSetName) {
              ListCities {
                  Try {
                       # получаем список всех городов
                      Write-Verbose "Listing cities in country: $($country)"
                      (([xml]$weather.GetCitiesByCountry("$country")).newdataset).table | Sort City | Select City
     Break
                      }
                  Catch {
                  Write-Warning "$($Error[0])"
                  Break
                  }
                }
               Weather {
                   Try {
                      # получаем погоду
                        Write-Verbose "Getting weather for Country: $($country), City $($city)"
                        ([xml]$weather.GetWeather("$city", "$country")).CurrentWeather
                       }
                   Catch {
                      Write-Warning "$($Error[0])"
                       }
                   }
               }
          }
      End {
          Write-Verbose "End function, performing clean-up"
          Remove-Variable city -Force
          Remove-Variable country -Force
          }  
      }
Теги:

Понравилась статья? Оставьте комментарий или подпишитесь на RSS рассылку.

Комментарии

Комментариев пока что нет

Оставить комментарий

(required)

(required)