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