about_properties

主题
    about_Properties

简短说明
    描述如何在 Windows PowerShell 中使用对象属性。


详细说明
    Windows PowerShell 使用结构化的信息集合(称为对象)来表示数据存储中的项或计算机的状态。
    通常情况下,您使用属于 Microsoft .NET Framework 的对象,但是您也可以在 Windows PowerShell 中
    创建自定义对象。


    项与其对象之间的关联非常紧密。当您更改对象时,您是在更改对象所表示的项。例如,当您在 Windows 
    PowerShell 中获取文件时,您得到的并不是实际文件。
    您获得的是表示该文件的 FileInfo 对象。当您更改 FileInfo 对象时,文件将随之更改。


    大多数对象都有属性。属性是与对象关联的数据。这些数据用于描述对象。例如,FileInfo 对象有名为 Length 
    的属性,该属性描述此对象所表示的文件的大小。


  对象属性

     若要列出某个对象的属性,请使用 Get-Member cmdlet。例如,若要获取 FileInfo 对象的属性,请使用 
     Get-ChildItem cmdlet 获取表示文件的 FileInfo 对象。然后,使用管道运算符 (|) 将 FileInfo 对象
     发送给 Get-Member。下面的命令获取 PowerShell.exe 文件,并将其发送给 Get-Member。$Pshome 自动
     变量包含 Windows PowerShell 安装目录的路径。

         get-childitem $pshome\powershell.exe |get-member


     该命令的输出列出 FileInfo 对象的成员。成员包括属性和方法。当在 Windows PowerShell 中工作时,您
     可以访问对象的所有成员。


     若只获取对象的属性而不获取其方法,请使用 Get-Member cmdlet 的 MemberType 参数,并将其赋值为
     “property”,如下面的示例所示。

         get-childitem $pshome\powershell.exe | get-member 
         -membertype property

            TypeName: System.IO.FileInfo
        

         Name              MemberType Definition
         ----              ---------- ----------
         Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
         CreationTime      Property   System.DateTime CreationTime {get;set;}
         CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
         Directory         Property   System.IO.DirectoryInfo Directory {get;}
         DirectoryName     Property   System.String DirectoryName {get;}
         Exists            Property   System.Boolean Exists {get;}
         Extension         Property   System.String Extension {get;}
         FullName          Property   System.String FullName {get;}
         IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
         LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
         LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
         LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
         LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
         Length            Property   System.Int64 Length {get;}
         Name              Property   System.String Name {get;}

     发现属性之后,可以在 Windows PowerShell 命令中使用它们。


  属性值
    
     虽然某一特定类型的每个对象都有相同的属性,但这些属性的值描述的对象是特定的。例如,每个 FileInfo 对
     象都有 CreationTime 属性,但是该属性的值因文件而异。


     获得对象属性值的最常见途径是使用点方法。键入对象的引用(如包含该对象的变量),或者键入可获取该对象的
     命令。然后,键入一个点 (.),后面跟随属性名。


     例如,下面的命令显示了 PowerShell.exe 文件的 CreationTime 属性的值。Get-ChildItem 命令返回表
     示 PowerShell.exe 文件的 FileInfo 对象。该命令包含在括号中,以确保在访问任何属性之前先执行该命
     令。Get-ChildItem 命令后面是一个点,以及 CreationTime 属性的名称,如下所示:

         C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime
         2008 年 3 月 18 日,星期二 12:07:52


     还可以将对象保存在变量中,然后使用点方法获得其属性,如下例所示:

         C:\PS> $a = Get-ChildItem $pshome\powershell.exe
         C:\PS> $a.CreationTime
         2008 年 3 月 18 日,星期二 12:07:52


     还可以使用 Select-Object 和 Format-List cmdlet 显示对象的属性值。Select-Object 
     和 Format-List 都有 Property 参数。可以使用 Property 参数指定一个或多个属性及其值。或者,可以
     使用通配符 (*) 表示所有属性。


     例如,下面的命令显示了 PowerShell.exe 文件所有属性的值。
 
 
         C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property *

         PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0
         PSChildName       : powershell.exe
         PSDrive           : C
         PSProvider        : Microsoft.PowerShell.Core\FileSystem
         PSIsContainer     : False
         VersionInfo       : File:             C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
                             InternalName:     POWERSHELL
                             OriginalFilename: PowerShell.EXE.MUI
                             File Version:      6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102)
                             FileDescription:  PowerShell.EXE
                             Product:          Microsoft® Windows® Operating System
                             ProductVersion:   6.1.6570.1
                             Debug:            False
                             Patched:          False
                             PreRelease:       False
                             PrivateBuild:     True
                             SpecialBuild:     False
                             Language:         English (United States)

         BaseName          : powershell
         Mode              : -a---
         Name              : powershell.exe
         Length            : 160256
         DirectoryName     : C:\Windows\system32\WindowsPowerShell\v1.0
         Directory         : C:\Windows\system32\WindowsPowerShell\v1.0
         IsReadOnly        : False
         Exists            : True
         FullName          : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         Extension         : .exe
         CreationTime      : 3/18/2008 12:07:52 AM
         CreationTimeUtc   : 3/18/2008 7:07:52 AM
         LastAccessTime    : 3/19/2008 8:13:58 AM
         LastAccessTimeUtc : 3/19/2008 3:13:58 PM
         LastWriteTime     : 3/18/2008 12:07:52 AM
         LastWriteTimeUtc  : 3/18/2008 7:07:52 AM
         Attributes        : Archive
        

另请参阅
    about_Objects
    Get-Member
    Select-Object
    Format-List