about_Tab_Expansion

Deskripsi singkat

PowerShell menyediakan penyelesaian input untuk memberikan petunjuk, mengaktifkan penemuan, dan mempercepat entri input. Nama perintah, nama parameter, nilai argumen, dan jalur file semuanya dapat diselesaikan dengan menekan tombol Tab .

Deskripsi panjang

Ekspansi tab dikontrol oleh fungsi internal TabExpansion2. Karena fungsi ini dapat dimodifikasi atau ditimpa, diskusi ini adalah panduan untuk perilaku konfigurasi PowerShell default.

Perilaku ekspansi tab juga dapat dimodifikasi oleh fitur Predictive IntelliSense dari modul PSReadLine. Untuk informasi selengkapnya, lihat IntelliSense Prediktif.

Tombol Tab adalah pengikatan kunci default pada Windows. Anda dapat mengubah keybinding menggunakan modul PSReadLine atau aplikasi yang menghosting PowerShell. Keybinding berbeda pada platform non-Windows. Untuk informasi selengkapnya, lihat about_PSReadLine.

Catatan

Salah satu batasan proses ekspansi tab adalah tab selalu ditafsirkan sebagai upaya untuk menyelesaikan kata. Jika Anda menyalin dan menempelkan contoh perintah ke konsol PowerShell, pastikan sampel tidak berisi tab. Jika ya, hasilnya tidak akan dapat diprediksi dan hampir pasti tidak akan menjadi apa yang Anda inginkan.

Penyelesaian nama file dan cmdlet

Untuk mengisi nama file atau jalur dari pilihan yang tersedia secara otomatis, ketik bagian dari nama dan tekan tombol Tab . PowerShell secara otomatis memperluas nama ke kecocokan pertama yang ditemukannya. Menekan tombol Tab berulang kali menelusuri semua pilihan yang tersedia.

Perluasan tab nama cmdlet sedikit berbeda. Untuk menggunakan ekspansi tab pada nama cmdlet, ketik seluruh bagian pertama nama (kata kerja) dan tanda hubung yang mengikutinya. Anda dapat mengisi lebih banyak nama untuk kecocokan parsial. Misalnya, jika Anda mengetik get-co lalu menekan tombol Tab , PowerShell secara otomatis memperluas ini ke Get-Command cmdlet. Perhatikan bahwa itu juga mengubah huruf menjadi bentuk standarnya. Jika Anda menekan tombol Tab lagi, PowerShell mengganti ini dengan satu-satunya nama cmdlet lain yang cocok, Get-Content.

Catatan

Pada PowerShell 7.0, Tab juga memperluas cmdlet dan fungsi yang disingkat. Misalnya, i-psdf<tab> mengembalikan Import-PowerShellDataFile.

Penyelesaian tab juga berfungsi untuk mengatasi alias PowerShell dan executable asli.

Anda dapat menggunakan ekspansi tab berulang kali pada baris yang sama. Misalnya, Anda dapat menggunakan ekspansi tab pada nama Get-Content cmdlet dengan memasukkan:

Contoh

PS> Get-Con<Tab>

Saat Anda menekan tombol Tab , perintah akan diperluas ke:

PS> Get-Content

Anda kemudian dapat menentukan sebagian jalur ke file log Penyetelan Aktif dan menggunakan ekspansi tab lagi:

PS> Get-Content c:\windows\acts<Tab>

Saat Anda menekan tombol Tab , perintah akan diperluas ke:

PS> Get-Content C:\windows\actsetup.log

PSReadLine juga memiliki fitur penyelesaian menu. Pengikatan kunci default pada Windows adalah Ctrl+Space.

PS> fore<Ctrl-Space>

Saat Anda menekan Ctrl+Space, PowerShell menyajikan daftar lengkap nilai yang cocok sebagai menu:

PS> foreach
foreach         ForEach-Object  foreach.cmd

Dalam contoh ini string 'fore' dicocokkan dengan foreach (alias PowerShell), ForEach-Object (cmdlet), dan foreach.cmd (perintah asli). Gunakan tombol panah untuk memilih nilai yang Anda inginkan.

Penyelesaian argumen parameter

Penyelesaian tab juga dapat berfungsi untuk menyelesaikan argumen parameter. Anda dapat menggunakan tombol Tab untuk menelusuri daftar nilai yang mungkin valid untuk beberapa parameter. Untuk informasi selengkapnya, lihat about_Functions_Argument_Completion.

Penyelesaian nilai enumerasi

PowerShell 7.0 menambahkan dukungan untuk penyelesaian tab enum. Anda dapat menggunakan penyelesaian tab untuk memilih nilai yang Anda inginkan di mana saja Anda menggunakan enum. Contohnya:

enum Suits {
    Clubs = 0
    Diamonds = 1
    Hearts = 2
    Spades = 3
}

[Suits]$suit = 'c<Tab>

Nilai enumerasi adalah string, sehingga nilai yang akan diselesaikan harus dimulai dengan karakter tanda kutip tunggal atau ganda.

Saat menekan tombol Tab , Anda mendapatkan hasil berikut:

[Suits]$suit = 'Clubs'

Penyelesaian tab juga berfungsi dengan enumerasi .NET.

[System.IO.FileAttributes]$attr = 'S<Tab><Tab>

Menekan tombol Tab dua kali menelusuri dua nilai yang dimulai dengan huruf S. Hasil akhirnya adalah:

[System.IO.FileAttributes]$attr = 'System'

Dimulai di PowerShell 7.0, perluasan tab ditambahkan untuk nilai ValidateSet saat menetapkan ke variabel. Misalnya, jika Anda mengetik definisi variabel berikut:

[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>

Saat Menekan tombol Tab , Anda akan mendapatkan hasil berikut:

$flavor = 'Chocolate'

Penyelesaian tab untuk kata kunci berbasis komentar

Dimulai di PowerShell 7.2, dukungan ditambahkan untuk penyelesaian #requires tab parameter dan kata kunci untuk bantuan berbasis komentar.

Contoh untuk #requires pernyataan

#requires -<Ctrl-Space>

Ekspansi menu menunjukkan opsi parameter berikut:

#requires -<Ctrl-Space>
Modules     PSEdition     RunAsAdministrator    Version

Contoh untuk bantuan berbasis komentar

<#
    .<Ctrl-Space>

Ekspansi menu memperlihatkan opsi kata kunci berikut:

 <#
    .COMPONENT
COMPONENT      EXTERNALHELP           FUNCTIONALITY     NOTES         REMOTEHELPRUNSPACE
DESCRIPTION    FORWARDHELPCATEGORY    INPUTS            OUTPUTS       ROLE
EXAMPLE        FORWARDHELPTARGETNAME  LINK              PARAMETER     SYNOPSIS

Lihat juga