Bagikan melalui


tentang_Function_Provider

Nama penyedia

Fungsi

Drives

Function:

Capabilities

HarusMemproses

Deskripsi singkat

Menyediakan akses ke fungsi yang ditentukan di PowerShell.

Deskripsi terperinci

Fungsi Penyedia PowerShell memungkinkan Anda mendapatkan, menambahkan, mengubah, mengosongkan, dan menghapus fungsi dan filter di PowerShell.

Fungsi adalah blok kode bernama yang melakukan tindakan. Saat Anda mengetik nama fungsi, kode dalam fungsi berjalan. Filter adalah blok kode bernama yang menetapkan kondisi untuk tindakan. Anda dapat mengetik nama filter sebagai pengganti kondisi, seperti dalam perintah Where-Object.

Drive Fungsi adalah namespace datar yang hanya berisi fungsi dan objek filter. Baik fungsi maupun filter tidak memiliki anak item.

Penyedia Fitur mendukung cmdlet berikut, yang dibahas dalam artikel ini.

Jenis yang diekspos oleh penyedia ini

Setiap fungsi adalah instans kelas System.Management.Automation.FunctionInfo. Setiap filter adalah instans kelas System.Management.Automation.FilterInfo.

Penyedia Fungsi mengekspos penyimpanan datanya di drive . Untuk menggunakan fungsi, Anda dapat mengubah lokasi ke drive Function: (Set-Location Function:). Atau, Anda dapat bekerja dari drive PowerShell lain. Untuk merujuk fungsi dari lokasi lain, gunakan nama drive (Function:) dalam jalur.

Set-Location Function:

Untuk kembali ke drive sistem file, ketik nama drive. Misalnya, ketik:

Set-Location C:

Anda juga dapat bekerja dengan penyedia Fungsi dari drive PowerShell lainnya. Untuk merujuk fungsi dari lokasi lain, gunakan nama drive Function: dalam jalur.

Nota

PowerShell menggunakan alias untuk memungkinkan Anda cara yang familier untuk bekerja dengan jalur penyedia. Perintah seperti dan sekarang menjadi alias untukGet-ChildItem , adalah alias untuk Set-Location dan adalah alias untuk Get-Location.

Mendapatkan fungsi

Perintah ini mendapatkan daftar semua fungsi dalam sesi saat ini. Anda dapat menggunakan perintah ini dari drive PowerShell apa pun.

Get-ChildItem -Path Function:

Penyedia Fungsi tidak memiliki kontainer, sehingga perintah di atas memiliki efek yang sama ketika digunakan dengan Get-ChildItem.

Get-ChildItem -Path Function:

Anda dapat mengambil definisi fungsi dengan mengakses properti Definition, seperti yang ditunjukkan di bawah ini.

(Get-Item -Path Function:more).Definition

Anda juga dapat mengambil definisi fungsi menggunakan jalur penyedianya yang diawali dengan tanda dolar ($).

$Function:more

Untuk mengambil definisi untuk fungsi yang memiliki tanda hubung (-) dalam nama, bungkus nilai setelah tanda dolar dengan kurung kurawal.

${Function:Clear-Host}

Mendapatkan fungsi yang dipilih

Perintah ini mendapatkan fungsi man dari drive Function:. Ini menggunakan cmdlet Get-Item untuk mendapatkan fungsi . Operator alur (|) mengirimkan hasilnya ke Format-Table. Parameter -Wrap mengarahkan teks yang tidak pas pada baris ke baris berikutnya. Parameter -AutoSize mengubah ukuran kolom tabel untuk mengakomodasi teks.

Get-Item -Path man | Format-Table -Wrap -AutoSize

Bekerja dengan jalur penyedia fungsi

Kedua perintah ini mendapatkan fungsi bernama C:. Perintah pertama dapat digunakan di drive apa pun. Perintah kedua digunakan pada drive Function:. Karena nama berakhiran titik dua, yang merupakan sintaksis untuk drive, Anda harus menentukan jalur dengan menggunakan nama drive. Dalam drive Function:, Anda dapat menggunakan salah satu format. Pada perintah kedua, titik (.) mewakili lokasi saat ini.

PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:

Membuat fungsi

Perintah ini menggunakan cmdlet New-Item untuk membuat fungsi yang disebut Win32:. Ekspresi dalam kurung kurawal adalah blok skrip yang diwakili oleh nama fungsi.

New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}

Cakupan

Sama seperti variabel, fungsi termasuk dalam cakupan tertentu. Saat Anda membuat fungsi, fungsi hanya tersedia dalam cakupan tempat fungsi dibuat. Untuk membuat fungsi tersedia, gunakan pengubah cakupan saat Anda membuat fungsi. Untuk informasi selengkapnya, lihat about_Scopes.

Contoh berikut menggunakan pengubah cakupan Global: untuk membuat fungsi dalam cakupan global.

function New-Function {
    param(
        [string] $Name,
        [scriptblock] $Script
    )

    $lp = "Function:\Global:$($Name)"
    Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}

New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }

Tanpa pengubah cakupan Global:, fungsi akan dibuat dalam cakupan lokal. Ketika New-Function keluar dari fungsi yang baru dibuat tidak akan ada lagi.

Menghapus fungsi

Perintah ini menghapus fungsi more dari sesi saat ini.

Remove-Item Function:more

Mengubah fungsi

Perintah ini menggunakan cmdlet Set-Item untuk mengubah fungsi prompt sehingga menampilkan waktu sebelum jalur.

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

Mengganti nama fungsi

Perintah ini menggunakan cmdlet Rename-Item untuk mengubah nama fungsi help menjadi gh.

Rename-Item -Path Function:help -NewName gh

Menyalin fungsi

Perintah ini menyalin prompt fungsi ke oldPrompt, secara efektif membuat nama baru untuk blok skrip yang terkait dengan fungsi prompt. Anda dapat menggunakan ini untuk menyimpan fungsi prompt asli jika Anda berencana untuk mengubahnya. Properti Opsi dari fungsi baru memiliki nilai None. Untuk mengubah nilai properti Opsi , gunakan .

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

Parameter dinamis

Parameter dinamis adalah parameter cmdlet yang ditambahkan oleh penyedia PowerShell dan hanya tersedia ketika cmdlet digunakan dalam drive yang diaktifkan penyedia.

Opsi <[System.Management.Automation.ScopedItemOptions]>

Menentukan nilai opsi properti dari suatu fungsi.

  • None: Tidak ada opsi. None adalah default.
  • Constant: Fungsi tidak dapat dihapus, dan propertinya tidak dapat diubah. Constant hanya tersedia saat Anda membuat fungsi. Anda tidak dapat mengubah opsi fungsi yang ada menjadi Constant.
  • Private: Fungsi hanya terlihat dalam cakupan saat ini
  • (tidak dalam cakupan anak)
  • ReadOnly: Properti fungsi tidak dapat diubah kecuali dengan menggunakan parameter -Force. Anda dapat menggunakan Remove-Item untuk menghapus fungsi.
  • AllScope: Fungsi disalin ke setiap ruang lingkup baru yang dibentuk.

Cmdlet yang didukung

Menggunakan alur

Cmdlet penyedia menerima masukan dari pipeline. Anda dapat menggunakan alur untuk menyederhanakan tugas dengan mengirim data penyedia dari satu cmdlet ke cmdlet penyedia lain. Untuk membaca selengkapnya tentang cara menggunakan alur dengan cmdlet penyedia, lihat referensi cmdlet yang disediakan di seluruh artikel ini.

Mendapatkan bantuan

Dimulai di Windows PowerShell 3.0, Anda bisa mendapatkan topik bantuan yang disesuaikan untuk cmdlet penyedia yang menjelaskan bagaimana cmdlet tersebut bereaksi dalam drive sistem file.

Untuk mendapatkan topik bantuan yang disesuaikan untuk drive sistem file, jalankan perintah Get-Help di drive sistem file atau gunakan parameter Get-Help untuk menentukan drive sistem file.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function:

Lihat juga