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 aktual. 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. Jenis objek yang berbeda 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 cmdlet Get-Member
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
Tuesday, June 14, 2022 5:17:14 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
Tuesday, June 14, 2022 5:17:14 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-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
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 Get-Member
Statis cmdlet. 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 about_Member-Access_Enumeration.
Contoh
Perintah ini mengembalikan nilai properti DisplayName dari setiap layanan yang Get-Service
ditampilkan.
(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
Mulai dari PowerShell 3.0, Anda bisa mendapatkan properti Hitungan atau Panjang objek singleton yang bukan koleksi.
(Get-Service Audiosrv).Count
1
Namun, beberapa objek memiliki properti Panjang . Misalnya, Panjang string adalah jumlah karakter dalam string. Properti Hitung adalah jumlah instans objek.
PS> $str = 'string'
PS> $str.Length
6
PS> $str.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