Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Menggambarkan cara skrip filter yang lebih mudah dan menggunakan bahasa alami untuk koleksi objek.
Deskripsi panjang
Sintaks yang disederhanakan, yang diperkenalkan di Windows PowerShell 3.0, memungkinkan Anda membuat beberapa perintah filter tanpa menggunakan blokir skrip. Sintaks yang disederhanakan lebih menyerupai bahasa alami, dan terutama berguna dengan kumpulan objek yang disalurkan ke dalam perintah Where-Object dan ForEach-Object atau alias yang sesuai where dan foreach.
Anda dapat menggunakan metode pada anggota koleksi (paling umum, array) tanpa merujuk ke variabel $_ otomatis di dalam blok skrip.
Pertimbangkan dua pemanggilan berikut:
Sintaks Standar
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -FilterScript { $_.FriendlyName -eq 'Verisign' }
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -FilterScript { $_.GetKeyAlgorithm() }
Nota
Pada perintah kedua, metode GetKeyAlgorithm dipanggil pada setiap objek dalam koleksi. Jika objek yang diterima dari alur tidak memiliki metode GetKeyAlgorithm, perintah akan menghasilkan kesalahan.
Sintaks yang disederhanakan
Di bawah sintaks yang disederhanakan, operator perbandingan yang bekerja pada anggota objek dalam koleksi diimplementasikan sebagai parameter. Selain itu, Anda dapat memanggil metode pada objek dalam koleksi tanpa mengacu pada variabel $_ otomatis di dalam blok skrip. Bandingkan dua pemanggilan berikut dengan contoh sintaks standar:
Get-ChildItem Cert:\LocalMachine\Root |
Where-Object -Property FriendlyName -EQ 'Verisign'
Get-ChildItem Cert:\ -Recurse |
ForEach-Object -MemberName GetKeyAlgorithm
Karena parameter Properti dan MemberName bersifat posisional, Anda dapat mengabaikannya dari perintah. Dengan menggunakan alias, Anda dapat menyederhanakan perintah lebih lanjut:
dir Cert:\LocalMachine\Root | where FriendlyName -EQ 'Verisign'
dir Cert:\ -Recurse | foreach GetKeyAlgorithm
Saat kedua sintaks berfungsi, sintaks yang disederhanakan mengembalikan hasil tanpa mengacu pada variabel $_ otomatis di dalam blok skrip. Sintaks yang disederhanakan membaca lebih seperti pernyataan bahasa alami dan dapat lebih mudah dipahami.
Nama metode GetKeyAlgorithm diteruskan sebagai argumen untuk parameter MemberName dari ForEach-Object. Saat Anda memanggil metode menggunakan sintaks yang disederhanakan, metode dipanggil untuk setiap objek dalam alur hanya jika objek tersebut memiliki metode tersebut. Oleh karena itu, Anda mendapatkan hasil yang sama, tetapi tanpa kesalahan.
Dalam contoh berikutnya, Description diteruskan ke MemberName parameter dari ForEach-Object. Perintah menampilkan deskripsi setiap objek System.Diagnostics.Process yang dikembalikan oleh Get-Process.
Get-Process | foreach Description
Dalam contoh ini, nama metode GetFiles diteruskan ke parameter MemberName perintah ForEach-Object. Nilai .* diteruskan ke parameter ArgumentList. Metode GetFiles() dipanggil dengan parameter pola pencarian .* untuk setiap objek System.IO.DirectoryInfo yang dikembalikan oleh Get-ChildItem.
Get-ChildItem /home -Directory | foreach GetFiles .*
Lihat juga
- tentang_Operator_Pembandingan
- about_Foreach
- ForEach-Object
- Where-Object