about_Parameter_Binding

Deskripsi singkat

Pengikatan parameter adalah proses yang digunakan PowerShell untuk menentukan kumpulan parameter mana yang digunakan dan untuk mengaitkan nilai (mengikat) ke parameter perintah. Nilai-nilai ini dapat berasal dari baris perintah dan alur.

Deskripsi panjang

Proses pengikatan parameter dimulai dengan mengikat argumen baris perintah.

  1. Mengikat parameter bernama

    Temukan token yang tidak dikutip pada baris perintah yang dimulai dengan tanda hubung. Jika token berakhir dengan titik dua, argumen diperlukan. Jika tidak ada titik dua, lihat jenis parameter dan lihat apakah argumen diperlukan. Jika nilai diperlukan, coba konversi jenis argumen ke jenis yang diperlukan oleh parameter, dan konversi berhasil, ikat parameter.

  2. Mengikat parameter posisi

    Jika ada argumen baris perintah yang tidak digunakan, cari parameter tidak terikat yang mengambil parameter posisi dan coba ikat.

Setelah mengikat argumen baris perintah, PowerShell mencoba mengikat input alur apa pun. Ada dua cara agar nilai terikat dari alur. Parameter yang menerima input alur memiliki satu atau kedua atribut berikut:

  • ValueFromPipeline - Nilai dari alur terikat ke parameter berdasarkan jenisnya. Jenis argumen harus cocok dengan jenis parameter.
  • ValueFromPipelineByPropertyName - Nilai dari alur terikat ke parameter berdasarkan namanya. Objek dalam alur harus memiliki properti yang cocok dengan nama parameter atau salah satu aliasnya. Jenis properti harus cocok atau dapat dikonversi ke jenis parameter.

PowerShell mencoba mengikat input alur dalam urutan berikut:

  1. Cobalah untuk mengikat ValueFromPipeline parameter tanpa konversi jenis:

    Ikat dari alur menurut nilai dengan kecocokan jenis yang tepat. Jika perintah memiliki input alur dan masih ada parameter yang tidak terikat, coba ikat ke parameter yang cocok dengan jenis dengan tepat.

  2. Cobalah untuk mengikat ValueFromPipelineByPropertyName parameter tanpa konversi jenis:

    Jika tidak ada kecocokan nilai yang ditemukan, maka ikat dari alur berdasarkan nama dengan kecocokan yang tepat. Cari properti pada objek input yang cocok dengan nama parameter atau salah satu aliasnya. Jika jenisnya sama persis, ikat parameter .

  3. Jika input alur belum terikat, coba ikat ValueFromPipeline parameter dengan konversi jenis:

    Coba konversi input alur ke jenis yang diperlukan. Jika konversi gagal, parameter tidak terikat.

  4. Jika input alur belum terikat, coba ikat ValueFromPipelineByPropertyName parameter dengan konversi jenis:

    Nama properti harus cocok dengan nama parameter atau salah satu aliasnya. Jika jenis input tidak cocok, coba konversi input ke jenis yang cocok. Jika konversi gagal, parameter tidak terikat.

Memvisualisasikan pengikatan parameter

Pemecahan masalah pengikatan parameter bisa menjadi tantangan. Anda dapat menggunakan cmdlet Trace-Command untuk memvisualisasikan proses pengikatan parameter. Contoh berikut menunjukkan cara melacak pengikatan parameter untuk alur sederhana.

Trace-Command -PSHost -Name ParameterBinding -Expression {
    Get-Item *.txt | Remove-Item
}

Output menunjukkan setiap langkah proses pengikatan parameter untuk perintah dalam Ekspresi. Outputnya bisa verbose, tetapi dapat membantu Anda memahami mengapa parameter tidak terikat seperti yang diharapkan. Untuk contoh lengkapnya, lihat artikel Memvisualisasikan pengikatan parameter.