about_Properties

Deskripsi singkat

Menjelaskan cara menggunakan properti objek di PowerShell.

Deskripsi panjang

PowerShell menggunakan kumpulan informasi terstruktur yang disebut objek untuk mewakili item di penyimpanan data atau status komputer. Biasanya, Anda bekerja dengan objek yang merupakan bagian dari Microsoft .NET Framework, tetapi Anda juga dapat membuat objek kustom di PowerShell.

Hubungan antara item dan objeknya sangat dekat. Saat Anda mengubah objek, Anda biasanya mengubah item yang diwakilinya. Misalnya, saat Anda mendapatkan file di PowerShell, Anda tidak mendapatkan file yang sebenarnya. Sebagai gantinya, Anda mendapatkan objek FileInfo yang mewakili file. Saat Anda mengubah objek FileInfo, file juga berubah.

Sebagian besar objek memiliki properti . Properti adalah data yang terkait dengan objek. Berbagai jenis objek memiliki properti yang berbeda. Misalnya, objek FileInfo , yang mewakili file, memiliki properti IsReadOnly yang berisi $True jika file memiliki atribut baca-saja dan $False jika tidak. Objek DirectoryInfo , yang mewakili direktori sistem file, memiliki properti Induk yang berisi jalur ke direktori induk.

Properti objek

Untuk mendapatkan properti objek, gunakan Get-Member cmdlet . Misalnya, untuk mendapatkan properti objek FileInfo , gunakan Get-ChildItem cmdlet untuk mendapatkan objek FileInfo yang mewakili file. Kemudian, gunakan operator alur (|) untuk mengirim objek FileInfo ke Get-Member. Perintah berikut mendapatkan pwsh.exe file dan mengirimkannya ke Get-Member. Variabel $PSHOME otomatis berisi jalur direktori penginstalan PowerShell.

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

Output perintah mencantumkan anggota objek FileInfo . Anggota mencakup properti dan metode. Saat Anda bekerja di PowerShell, Anda memiliki akses ke semua anggota objek.

Untuk mendapatkan hanya properti objek dan bukan metode, gunakan parameter MemberType dari Get-Member cmdlet dengan nilai Property, seperti yang ditunjukkan dalam contoh berikut.

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;}

Setelah menemukan properti, Anda bisa menggunakannya di perintah PowerShell Anda.

Nilai properti

Meskipun setiap objek dari jenis tertentu memiliki properti yang sama, nilai properti tersebut menjelaskan objek tertentu. Misalnya, setiap objek FileInfo memiliki properti CreationTime , tetapi nilai properti tersebut berbeda untuk setiap file.

Cara paling umum untuk mendapatkan nilai properti objek adalah dengan menggunakan operator akses anggota (.). Ketik referensi ke objek , seperti variabel yang berisi objek , atau perintah yang mendapatkan objek . Kemudian, ketik operator (.) diikuti dengan nama properti.

Misalnya, perintah berikut menampilkan nilai properti CreationTime file pwsh.exe . Perintah Get-ChildItem mengembalikan objek FileInfo yang mewakili pwsh.exe file. Perintah diapit dalam tanda kurung untuk memastikan bahwa perintah dijalankan sebelum properti diakses.

(Get-ChildItem $PSHOME\pwsh.exe).CreationTime
Wednesday, June 15, 2022 5:26:00 PM

Anda juga dapat menyimpan objek dalam variabel lalu mendapatkan propertinya menggunakan metode akses anggota (.), seperti yang ditunjukkan dalam contoh berikut:

$a = Get-ChildItem $PSHOME\pwsh.exe
$a.CreationTime
Wednesday, June 15, 2022 5:26:00 PM

Anda juga dapat menggunakan Select-Object cmdlet dan Format-List untuk menampilkan nilai properti objek. Select-Object dan Format-List masing-masing memiliki parameter Properti . Anda dapat menggunakan parameter Properti untuk menentukan satu atau beberapa properti dan nilainya. Atau, Anda dapat menggunakan karakter kartubebas (*) untuk mewakili semua properti.

Misalnya, perintah berikut menampilkan nilai semua properti file pwsh.exe.

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

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

Properti statis

Anda dapat menggunakan properti statis kelas .NET di PowerShell. Properti statis adalah properti kelas, tidak seperti properti standar, yang merupakan properti objek.

Untuk mendapatkan properti statis kelas, gunakan parameter Statis cmdlet Get-Member . Misalnya, perintah berikut mendapatkan properti statis kelas 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;}

Untuk mendapatkan nilai properti statis, gunakan sintaks berikut.

[<ClassName>]::<Property>

Misalnya, perintah berikut mendapatkan nilai properti statis UtcNow dari System.DateTime kelas .

[System.DateTime]::UtcNow

Enumerasi akses anggota

Dimulai di PowerShell 3.0, saat Anda menggunakan operator akses anggota (.) untuk mengakses properti yang tidak ada di kumpulan daftar, PowerShell secara otomatis menghitung item dalam koleksi dan mengembalikan nilai properti pada setiap item. Untuk informasi selengkapnya, lihat Access_Enumeration about_Member.

Contoh

Perintah ini mengembalikan nilai properti DisplayName dari setiap layanan yang Get-Service dikembalikan.

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

Semua koleksi memiliki properti Hitung yang mengembalikan jumlah objek dalam koleksi.

(Get-Service).Count
176

Dimulai di PowerShell 3.0, jika Anda meminta properti Hitungan atau Panjang dari objek nol atau satu objek, PowerShell mengembalikan nilai yang benar.

(Get-Service Audiosrv).Count
1

Jika properti ada pada objek individual dan pada koleksi, hanya properti koleksi yang dikembalikan.

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

Lihat juga