Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > PowerShell - Enum properties and invoke methods


Автор: Freak_FB 14.4.2011, 17:34
Привет всем.

Решил побаловаться в PS на практическом (но бессмысленном) примере: получить статические свойства некого класса и для каждого этого свойства вызвать метод этого свойства.

Дошел до такого (дальше не получается):

PS C:\Users\okosmakov> [System.Media.SystemSounds] | Get-Member -Static -MemberT
ype Properties


   TypeName: System.Media.SystemSounds

Name        MemberType Definition
----        ---------- ----------
Asterisk    Property   static System.Media.SystemSound Asterisk {get;}
Beep        Property   static System.Media.SystemSound Beep {get;}
Exclamation Property   static System.Media.SystemSound Exclamation {get;}
Hand        Property   static System.Media.SystemSound Hand {get;}
Question    Property   static System.Media.SystemSound Question {get;}


Ещё известно что можно для таких свойств выполнить метод Play():

([System.Media.SystemSounds]::Beep).Play()


Как бы его расширить верхний код чтобы Play вызвать для каждого из свойств?

Автор: 01MDM 14.4.2011, 18:11
Например:
Код

[media.systemsounds] | gm -s -t property | % {
    
    start-sleep 1
    [media.systemsounds]::$($_.name).play()    

}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)