about_Tab_Expansion

簡単な説明

PowerShell では、ヒントの提供、検出の有効化、入力入力の高速化を行う入力入力の完了が提供されます。 コマンド名、パラメーター名、引数の値、ファイル パスはすべて、Tab キーを押すことで 完了 できます。

長い説明

タブの展開は、内部関数 TabExpansion または TabExpansion2 によって制御されます。 この関数は変更やオーバーライドができるため、この説明は既定の PowerShell 構成の動作についてのガイドとなっています。

Tab キーは、 の既定のキー バインドWindows。 このキーバインドは、PSReadLine モジュールまたは PowerShell をホストしているアプリケーションによって変更できます。 キーバインドは、非暗号化プラットフォームではWindows異なります。 詳細については、「about_PSReadLine」 を参照してください

注意

タブ拡張プロセスの 1 つの制限は、タブがあると、必ず単語の補完を試みていると解釈されることです。 コマンドの例をコピーして PowerShell コンソールに貼り付ける場合は、サンプルにタブが含まれていないことを確認ください。タブが含まれていると結果は予測できず、ほぼ確実に意図したとおりにはなりません。

ファイル名とコマンドレット名の入力補完

使用可能な選択肢からファイル名またはパスを自動的に入力するには、名前の一部を入力して Tab キーを押します。 PowerShell は自動的に名前を拡張し、最初に見つかった一致する項目を表示します。 Tab キーを繰り返し押すと、すべての利用可能な選択肢が順番に表示されます。

コマンドレット名のタブ拡張は若干異なります。 コマンドレット名にタブ拡張を使用するには、名前の最初の部分全体 (動詞) とそれに続くハイフンを入力します。 部分一致するよう、名前をより詳細に入力することもできます。 たとえば、「get-co」と入力して Tab キーを押すと、これが PowerShell によって Get-Command コマンドレットに自動的に展開されます (文字の大文字と小文字の区別もその標準形式に変更されることに注目してください)。 もう一度 Tab キーを押すと、PowerShell によってこれが他の一致する唯一のコマンドレット名 Get-Content に置き換えられます。

注意

また、PowerShell 7.0 より、Tab キーで省略形のコマンドレットや関数が完全な形で示されます。 たとえば、i-psdf<tab> では Import-PowerShellDataFile が返されます。

タブ補完は、PowerShell エイリアスとネイティブ実行可能ファイルの解決にも機能します。

同じ行にタブ拡張を繰り返し使用できます。 たとえば、Get-Content コマンドレットの名前に対してタブ展開を使用するには、次のように入力できます。

PS> Get-Con<Tab>

Tab キーを押すと、コマンドは次のように拡張されます。

PS> Get-Content

次に、アクティブ セットアップのログ ファイルのパスを部分的に指定し、もう一度タブ拡張を使用できます。

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

Tab キーを押すと、コマンドは次のように拡張されます。

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

PSReadLine には、メニュー補完機能も用意されています。 既定のキー バインドは、Windows CtrlSpace- です

PS> fore<Ctrl-Space>

CtrlSpace キーを押-すと、一致する値の完全な一覧がメニューとして表示されます。

PS> foreach
foreach         ForEach-Object  foreach.cmd

この例では、文字列 'fore' foreach は (PowerShell エイリアス ForEach-Object )、(コマンドレット)、および (ネイティブ コマンド) foreach.cmd に一致します。 矢印キーを使用して、目的の値を選択します。

パラメーター引数の入力補完

タブ補完は、パラメーター引数を完了するためにも機能します。 これにより、Tab キーを使用 して 、一部のパラメーターに対して有効な値の一覧を切り替えできます。

詳細については、「」を 参照about_Functions_Argument_Completion

列挙値の完了

PowerShell 7.0 から、列挙型のタブ補完のサポートが追加されました。 タブ補完を使用して、列挙型が使用されている任意の場所で必要な値を選択できます。 次に例を示します。

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

[Suits]$suit = 'c<Tab>

列挙値は文字列なので、完了する値は 1 文字または二重引用符で始まる必要があります。

Tab キーを押 すると 、次の結果が表示されます。

[Suits]$suit = 'Clubs'

タブ補完は 、.NET 列挙体でも機能します。

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

Tab キーを 2 回 押した場合、文字 "S" で始まる 2 つの値が循環します。 結果は次の結果になります。

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

PowerShell 7.0 より、 ValidateSet 変数に割り当てるときに の値にタブ展開が追加されました。 たとえば、次の変数定義を入力した場合は、次のようになります。

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

Tab キー を押すると 、次の結果が表示されます。

$flavor = 'Chocolate'

コメント ベースのキーワードのタブ補完

PowerShell 7.2 より、 #requires パラメーターのタブ補完とコメントベースのヘルプのキーワードのサポートが追加されました。

ステートメントの #requires

#requires -<Ctrl-Space>

メニューの展開には、次のパラメーター オプションが表示されます。

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

コメント ベースのヘルプの例

<#
    .<Ctrl-Space>

メニューの展開には、次のキーワード オプションが表示されます。

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

関連項目