<# .SYNOPSIS Банк России. Курсы валют .DESCRIPTION Скрипт получает с сайта Банка России курсы валют на указанную дату, если дата не указана, то на последнюю зарегистрированную дату .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -CharCode 'USD' -DateReq (Get-Date "19.09.2018") | ft -a Получить курс доллара на 19.09.2018 .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -CharCode 'USD' -DateReq (Get-Date "19.09.2019") | ft -a Получить курс доллара на 19.09.2019 .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -CharCode 'USD' | ft -a Получить курс доллара на последнюю зарегистрированную дату .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -CharCode 'EUR').Value Получить курс евро, отобразить только значение .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -CharCode 'USD', 'EUR', 'JPY' | ft -a Получить перечисленные в аббревиатурах курсы валют .EXAMPLE PS C:\> К:\Скрипту\Путь\Get-CBRDaily.ps1 -Name 'долл', 'фран' | ft -a Получить для валют совпадающих по части имени .LINK https://www.cbr.ru/development/ .NOTES Автор: iNNOKENTIY21 #> [CmdletBinding(DefaultParameterSetName)] param ( [datetime] $DateReq, [Parameter(ParameterSetName = 'ByCharCode')] [ValidateSet('AUD', 'AZN', 'GBP', 'AMD', 'BYN', 'BGN', 'BRL', 'HUF', 'HKD', 'DKK', 'USD', 'EUR', 'INR', 'KZT', 'CAD', 'KGS', 'CNY', 'MDL', 'NOK', 'PLN', 'RON', 'XDR', 'SGD', 'TJS', 'TRY', 'TMT', 'UZS', 'UAH', 'CZK', 'SEK', 'CHF', 'ZAR', 'KRW', 'JPY')] [string[]] $CharCode, [Parameter(ParameterSetName = 'ByName')] [string[]] $Name, [Parameter(ParameterSetName = 'ByNumCode')] [ValidateSet(036, 944, 826, 051, 933, 975, 986, 348, 344, 208, 840, 978, 356, 398, 124, 417, 156, 498, 578, 985, 946, 960, 702, 972, 949, 934, 860, 980, 203, 752, 756, 710, 410, 392)] [int[]] $NumCode, [Parameter(ParameterSetName = 'ByID')] [ValidateSet('R01010', 'R01020A', 'R01035', 'R01060', 'R01090B', 'R01100', 'R01115', 'R01135', 'R01200', 'R01215', 'R01235', 'R01239', 'R01270', 'R01335', 'R01350', 'R01370', 'R01375', 'R01500', 'R01535', 'R01565', 'R01585F', 'R01589', 'R01625', 'R01670', 'R01700J', 'R01710A', 'R01717', 'R01720', 'R01760', 'R01770', 'R01775', 'R01810', 'R01815', 'R01820')] [string[]] $ID ) if ($DateReq) { $Date = $DateReq.ToString("dd.MM.yyyy") } $Uri = "http://www.cbr.ru/scripts/XML_daily.asp?date_req=$Date" $Res = Invoke-RestMethod -Uri $Uri switch ($PSCmdlet.ParameterSetName) { ByCharCode { $CharCode | % {$Res.ValCurs.Valute | ? CharCode -EQ $_} } ByName { $Name | % {$Res.ValCurs.Valute | ? Name -Match $_} } ByNumCode { $NumCode | % {$Res.ValCurs.Valute | ? NumCode -EQ $_} } ByID { $ID | % {$Res.ValCurs.Valute | ? ID -EQ $_} } Default { $Res.ValCurs.Valute } } |