Powershell获取$ EventArgs自动变量

时间:2016-07-08 20:16:15

标签: powershell events

我想列出变量$EventArgs的所有可用属性,方法是将其汇总到get-member。但是我无法获得自动变量$EventArgs的成员。

在示例中,我可以看到他们获得了财产。 FullPath来自自动变量$ EventArgs。我想要一种方法列出可能有用的所有属性。

有关如何获取$ EventArgs自动变量成员的任何想法。

$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\"
$watcher.IncludeSubdirectories = $true
$watcher.EnableRaisingEvents = $true
$watcher.Site
$arrary = @()

$watcher.Filter = ""
Register-ObjectEvent $watcher "Created" -Action {
   write-host "Created: $($eventArgs.FullPath)"
  $arrary+= $EventArgs|gm
  $arrary+= $EventArgs
  write-host $EventArgs|gm
  $EventArgs|gm
}

1 个答案:

答案 0 :(得分:1)

查看所有属性(只有三个)的一种快速方法是执行此操作:

Register-ObjectEvent $watcher "Created" -Action {
    $eventArgs | Select-Object * | Write-Host
}

但是,如果您这样做,您将获得更多有用的信息:

Register-ObjectEvent $watcher "Created" -Action {
    Write-Host $eventArgs.GetType()
}

然后在MSDN上查找结果类型。执行此操作后,您会看到$EventArgs实际上是System.IO.FileSystemEventArgs类型的对象,即fully documented here。您不仅会看到这三个属性,还会看到它们的含义。例如,第一个属性ChangeType实际上是System.IO.WatcherFileTypes类型的枚举,您可以了解它可以拥有的所有不同值。