about_Properties

Rövid leírás

Az objektumtulajdonságok PowerShellben való használatát ismerteti.

Hosszú leírás

A PowerShell strukturált információgyűjteményeket, úgynevezett objektumokat használ az adattárak elemeinek vagy a számítógép állapotának megjelenítéséhez. Általában a Microsoft .NET-keretrendszer részét képező objektumokkal dolgozik, de egyéni objektumokat is létrehozhat a PowerShellben.

Az elem és az objektum közötti társítás nagyon szoros. Amikor módosít egy objektumot, általában az általa képviselt elemet módosítja. Ha például a PowerShellben kap egy fájlt, nem kapja meg a tényleges fájlt. Ehelyett egy FileInfo objektumot kap, amely a fájlt jelöli. A FileInfo objektum módosításakor a fájl is megváltozik.

A legtöbb objektum rendelkezik tulajdonságokkal. A tulajdonságok az objektumokhoz társított adatok. A különböző típusú objektumok különböző tulajdonságokkal rendelkeznek. Egy fájlokat képviselő FileInfo-objektum például egy IsReadOnly tulajdonsággal rendelkezik, amely tartalmazza$True, ha a fájl írásvédett attribútummal rendelkezik, és $False ha nem. A fájlrendszerkönyvtárat jelképező DirectoryInfo objektum szülőtulajdonságával rendelkezik, amely a szülőkönyvtár elérési útját tartalmazza.

Objektumtulajdonságok

Egy objektum tulajdonságainak lekéréséhez használja a Get-Member parancsmagot. Például egy FileInfo-objektum tulajdonságainak lekéréséhez használja a Get-ChildItem parancsmagot a fájlokat képviselő FileInfo objektum lekéréséhez. Ezután használjon egy folyamatkezelőt () a FileInfo objektum elküldéséhezGet-Member.| A következő parancs lekéri a pwsh.exe fájlt, és elküldi a fájlnak Get-Member. Az $PSHOME automatikus változó tartalmazza a PowerShell telepítési könyvtárának elérési útját.

Get-ChildItem $PSHOME\pwsh.exe | Get-Member

A parancs kimenete felsorolja a FileInfo objektum tagjait. A tagok tulajdonságokat és metódusokat is tartalmaznak. Amikor a PowerShellben dolgozik, hozzáférhet az objektumok összes tagához.

Ha csak egy objektum tulajdonságait szeretné lekérni, és nem a metódusokat, használja a Get-Member parancsmag MemberType paraméterét Propertyaz alábbi példában látható módon.

Get-ChildItem $PSHOME\pwsh.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;}

Miután megtalálta a tulajdonságokat, használhatja őket a PowerShell-parancsokban.

Tulajdonságértékek

Bár egy adott típusú objektum minden objektuma ugyanazokkal a tulajdonságokkal rendelkezik, ezeknek a tulajdonságoknak az értékei az adott objektumot írják le. Például minden FileInfo-objektum rendelkezik CreationTime tulajdonsággal, de ennek a tulajdonságnak az értéke minden fájlban eltér.

Az objektumok tulajdonságainak lekérésének leggyakoribb módja a tagelérési operátor (.). Írja be az objektumra mutató hivatkozást, például az objektumot tartalmazó változót vagy az objektumot lekérő parancsot. Ezután írja be az operátort (.) és a tulajdonság nevét.

Az alábbi parancs például a fájl CreationTime tulajdonságának pwsh.exe értékét jeleníti meg. A Get-ChildItem parancs egy FileInfo objektumot ad vissza, amely a pwsh.exe file. A parancs zárójelek közé van állítva, hogy minden tulajdonság elérése előtt végrehajtsa a parancsot.

(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Tuesday, June 14, 2022 5:17:14 PM

Egy objektumot egy változóba is menthet, majd lekérheti annak tulajdonságait a taghozzáférési (.) metódussal, ahogyan az alábbi példában látható:

$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Tuesday, June 14, 2022 5:17:14 PM

Az objektumok tulajdonságértékeit a parancsmagok és Format-List a Select-Object parancsmagok használatával is megjelenítheti. Select-Objectés Format-List mindegyik tulajdonságparaméterrel rendelkezik. A Tulajdonság paraméter használatával megadhat egy vagy több tulajdonságot és azok értékeit. Vagy használhatja a helyettesítő karaktert (*) az összes tulajdonság megjelenítéséhez.

Az alábbi parancs például a pwsh.exe fájl összes tulajdonságának értékét jeleníti meg.

Get-ChildItem $PSHOME\pwsh.exe | Format-List -Property *
PSPath              : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7-preview\pwsh.exe
PSParentPath        : Microsoft.PowerShell.Core\FileSystem::C:\Program Files\PowerShell\7-preview
PSChildName         : pwsh.exe
PSDrive             : C
PSProvider          : Microsoft.PowerShell.Core\FileSystem
PSIsContainer       : False
Mode                : -a---
ModeWithoutHardLink : -a---
VersionInfo         : File:             C:\Program Files\PowerShell\7-preview\pwsh.exe
                      InternalName:     pwsh.dll
                      OriginalFilename: pwsh.dll
                      FileVersion:      7.3.0.5
                      FileDescription:  pwsh
                      Product:          PowerShell
                      ProductVersion:   7.3.0-preview.5 SHA: cfc237ac85cf24fa760923ace568201c8f3256aa
                      Debug:            False
                      Patched:          False
                      PreRelease:       False
                      PrivateBuild:     False
                      SpecialBuild:     False
                      Language:         Language Neutral

BaseName            : pwsh
ResolvedTarget      : C:\Program Files\PowerShell\7-preview\pwsh.exe
Target              :
LinkType            :
Length              : 285088
DirectoryName       : C:\Program Files\PowerShell\7-preview
Directory           : C:\Program Files\PowerShell\7-preview
IsReadOnly          : False
FullName            : C:\Program Files\PowerShell\7-preview\pwsh.exe
Extension           : .exe
Name                : pwsh.exe
Exists              : True
CreationTime        : 6/14/2022 5:17:14 PM
CreationTimeUtc     : 6/14/2022 10:17:14 PM
LastAccessTime      : 7/18/2022 11:32:06 AM
LastAccessTimeUtc   : 7/18/2022 4:32:06 PM
LastWriteTime       : 6/14/2022 5:17:14 PM
LastWriteTimeUtc    : 6/14/2022 10:17:14 PM
LinkTarget          :
Attributes          : Archive

Statikus tulajdonságok

A .NET-osztályok statikus tulajdonságait a PowerShellben használhatja. A statikus tulajdonságok osztálytulajdonságok, ellentétben a standard tulajdonságokkal, amelyek egy objektum tulajdonságai.

Egy osztály statikus tulajdonságainak lekéréséhez használja a Get-Member parancsmag Statikus paraméterét. Az alábbi parancs például lekéri az osztály statikus tulajdonságait System.DateTime .

Get-Date | Get-Member -MemberType Property -Static
TypeName: System.DateTime

Name     MemberType Definition
----     ---------- ----------
MaxValue Property   static datetime MaxValue {get;}
MinValue Property   static datetime MinValue {get;}
Now      Property   datetime Now {get;}
Today    Property   datetime Today {get;}
UtcNow   Property   datetime UtcNow {get;}

Statikus tulajdonság értékének lekéréséhez használja az alábbi szintaxist.

[<ClassName>]::<Property>

Az alábbi parancs például az osztály UtcNow statikus tulajdonságának System.DateTime értékét kapja meg.

[System.DateTime]::UtcNow

Taghozzáférés számbavétele

A PowerShell 3.0-tól kezdve, amikor a taghozzáférési operátor (.) használatával egy olyan tulajdonsághoz fér hozzá, amely nem szerepel egy listagyűjteményben, a PowerShell automatikusan számba veszi a gyűjtemény elemeit, és visszaadja az egyes elemek tulajdonságának értékét. További információ: about_Member-Access_Enumeration.

Példák

Ez a parancs minden visszaadott szolgáltatás Get-Service DisplayName tulajdonságának értékét adja vissza.

(Get-Service).DisplayName
Application Experience
Application Layer Gateway Service
Windows All-User Install Agent
Application Identity
Application Information
...

Minden gyűjtemény rendelkezik egy Darabszám tulajdonságmal, amely a gyűjteményben lévő objektumok számát adja vissza.

(Get-Service).Count
176

A PowerShell 3.0-tól kezdve lekérheti a nem gyűjteménynek számító önálló objektumok Darabszám vagy Hossz tulajdonságát.

(Get-Service Audiosrv).Count
1

Egyes objektumok azonban hossztulajdonságokkal rendelkeznek. Egy sztring hossza például a sztringben szereplő karakterek száma. A Count tulajdonság az objektum példányainak száma.

PS> $str = 'string'
PS> $str.Length
6
PS> $str.Count
1

Ha egy tulajdonság az egyes objektumokon és a gyűjteményen található, a rendszer csak a gyűjtemény tulajdonságát adja vissza.

$collection = @(
    [pscustomobject]@{length = "foo"}
    [pscustomobject]@{length = "bar"}
)
# PowerShell returns the collection's Length.
$collection.length
2

Lásd még