Scripting Games: Sudden Death Challenge — Event 5

sd5

Решая эту задачку я совсем забыл про [wmiclass] и использовал вместо него system.management.managementClass…

 

SD5.ps1
# Объявляем хэш-таблицу. $h = @{} # Получаем список WMI объектов. Get-WmiObject -List | # отбираем только начинающиеся на win32_ и заодно проверяем не заполнена ли уже # хэш-таблица. Where-Object {$_.Name -like "win32_*" -and $h.count -ne 25}| # Для каждого отобранного объекта... ForEach-Object { # ... помещаем имя класса в переменную $Class. $Class=$_.name; # Создаем .net объект System.Management.ManagementClass для текущего класса... (New-Object system.management.managementClass($Class)).psbase.properties | # ...и отбираем из всех его свойств поле Name, которое передаем дальше по # конвейеру. ForEach-Object {$_.Name} }| # Для каждого полученного по конвейеру свойства... foreach { #... если оно начинается с нужных букв (^ - обозначает начало строки, а [a-y] # любой символ от a до y. Скобки в регулярном выражении помещают первый # символ слова в $Matches[1]). if ($_ -match "^([a-y])") { # Если в хэш-таблице еще нет указанной буквы... if (!$h[$matches[1]]) { # Помещаем текущее свойство в переменную $Prop $prop = $_ # Создаем новый объект со свойствами Letter, Property и Class, # который помещаем в хэш-таблицу под соответствующей буквой. $h[$matches[1]]=0|select @{n="Letter";e={$matches[1]}}, @{n="Property";e={$prop}}, @{n="Class";e={$class}} } # Пишем в заголовке текущий сколько уже нашли свойств и текущий класс. $host.ui.rawui.windowtitle = "$($h.count)/25 - $Class.$_" } } # Красиво выводим результаты. $h.values | Sort-Object letter | Format-Table -AutoSize

Обязательно посмотреть оба варианта MoW.

Опубликовано в Learn, PowerShell, Scripting, Scripting Games. 1 Comment »

Один ответ to “Scripting Games: Sudden Death Challenge — Event 5”

  1. PowerShell и другие скрипты : Scripting Games: Sudden Death Challenge - Event 5 Says:

    […] Решая эту задачку я совсем забыл про [wmiclass] и использовал вместо него system.management.managementClass… SD5.ps1 Читать далее… […]


Обсуждение закрыто.

%d такие блоггеры, как: