23 April 2009

Bahasa Scripting Windows PowerShell (Bagian 2)

Object Pipeline
Pemakaian pipe pada console tentu tidak asing lagi bagi administrator UNIX/Linux. Pipe digunakan sebagai input dari perintah dari output dari perintah lain. Begitu pula pada Windows PowerShell yang mempunyai fungsi yang sama, tapi pada Windows PowerShell menggunakan obyek yang dikirim ke perintah lain. Pemakaian pipe bisa dilakukan dimana saja pada Windows PowerShell. Pemakaian pipe ini bisa lebih dari satu, sesuai dengan kebutuhan.
Contoh sederhana dari penggunaan pipe adalah menampilkan isi suatu direktori ke layar dan menampilkannya per halaman. Untuk memenuhi kebutuhan ini, kita memerlukan dua cmdlet yaitu Get-ChildItem dan Out-Host. Get-ChildItem digunakan untuk menampilkan isi direktori dan Out-Host mengirimkan output ke host Windows PowerShell (dalam hal ini layar) untuk ditampilkan. Perintahnya adalah seperti ini.
Get-ChildItem -Path C:\Windows\system32 | Out-Host -Paging
Dengan perintah tersebut, kita akan mendapatkan output berupa isi dari direktori C:\Windows\system32. Output dari Get-ChildItem yang berupa isi dari direktori akan diteruskan sebagai input dari Out-Host yang akan menampilkan ke layar.

Menampilkan Struktur Obyek dengan Get-Member
Ini barangkali bukan merupakan sesuatu yang asing bagi kita yang sering berkutat dengan pemrograman berorientasi obyek. Suatu waktu kita perlu mendapatkan informasi dari sebuah obyek, apakah itu method atau property. Dalam pemrograman .NET, ada suatu istilah yaitu Reflection yang digunakan untuk mendapatkan metadata dari sebuah obyek. Atau pada Delphi ada istilah Runtime Type Information (RTTI), yang mempunyai fungsi mirip seperti diatas. Pada Windows PowerShell ada cmdlet Get-Member untuk kebutuhan ini.
Tanpa kita sadari semua perintah atau cmdlet yang ada adalah merupakan obyek. Dengan kenyataan ini, maka kita bisa mendapatkan informasi method dan property yang dipunyai oleh sebuah cmdlet. Contohnya jika kita ingin mendapatkan struktur obyek dari cmdlet Get-ChildItem dengan mengetikkan perintah:
Get-Member -InputObject Get-ChildItem Maka kita akan mendapatkan output seperti dibawah ini.















Atau kita bisa dapatkan output yang mirip jika kita mengetikkan perintah:
Get-ChildItem | Get-Member Kita bahkan bisa mendapatkan isi dari property Get-ChildItem. Jika menjalankan perintah dibawah ini:
$jumlahfile = (Get-ChildItem).Length echo $jumlahfile Output dari perintah diatas adalah jumlah file yang ada pada suatu direktori.

Tidak ada komentar:

Posting Komentar