Megosztás:


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 | objektum elküldéséhez.Get-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 paraméterét Get-Memberaz 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 CreationTimejelení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
Wednesday, November 13, 2024 10:12:26 PM

Az objektumok tulajdonságértékeit a parancsmagok és Select-Object a Format-List 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.5.0.101
                      FileDescription:  PowerShell 7
                      Product:          PowerShell
                      ProductVersion:   7.5.0-rc.1 SHA: c0142dde17137e436e302b3c4e93e2d6dc50c5c4+c0142dde17137e436e302b3c4e93e2d6dc50c5c4
                      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            :
Name                : pwsh.exe
Length              : 284704
DirectoryName       : C:\Program Files\PowerShell\7-preview
Directory           : C:\Program Files\PowerShell\7-preview
IsReadOnly          : False
Exists              : True
FullName            : C:\Program Files\PowerShell\7-preview\pwsh.exe
Extension           : .exe
CreationTime        : 11/13/2024 10:12:26 PM
CreationTimeUtc     : 11/14/2024 4:12:26 AM
LastAccessTime      : 1/3/2025 1:38:13 PM
LastAccessTimeUtc   : 1/3/2025 7:38:13 PM
LastWriteTime       : 11/13/2024 10:12:26 PM
LastWriteTimeUtc    : 11/14/2024 4:12:26 AM
LinkTarget          :
UnixFileMode        : -1
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 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átort (.) használja egy nem létező tulajdonság eléréséhez, a PowerShell automatikusan számba veszi a gyűjtemény elemeit, és visszaadja az egyes elemek tulajdonságának értékét.

Ez a parancs minden visszaadott szolgáltatás DisplayNameGet-Serviceadja vissza.

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

A legtöbb PowerShell-gyűjtemény rendelkezik egy Darabszám tulajdonsággal, amely visszaadja a gyűjtemény elemeinek számát.

(Get-Service).Count
176

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.

PS> $collection = @(
     [pscustomobject]@{Length = "foo"}
     [pscustomobject]@{Length = "bar"}
)

# PowerShell returns the collection's Length.
$collection.Length
2

# Get the Length property of each item in the collection.
PS> $collection.GetEnumerator().Length
foo
bar

További információ: about_Member-Access_Enumeration.

Lásd még