次の方法で共有


about_Tab_Expansion

簡単な説明

PowerShell には、ヒントの提示、検出の有効化、入力エントリの高速化のために、入力補完が搭載されています。 コマンド名、パラメーター名、引数値、ファイル パスのすべてを、Tab キーを押して補完できます。

詳細な説明

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

タブ展開の動作は、PSReadLine モジュールの予測 IntelliSense 機能によっても変更できます。 詳細については、「予測 IntelliSense」を参照してください

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

Note

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

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

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

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

Note

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 の既定のキー バインドは Ctrl+Space です。

PS> fore<Ctrl-Space>

Ctrl Space キー+を押すと、PowerShell によって、一致する値の完全な一覧がメニューとして表示されます。

PS> foreach
foreach         ForEach-Object  foreach.cmd

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

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

タブ補完は、パラメーター引数を完了するためにも機能します。 Tab キーを使用すると、パラメーターに対して有効な使用可能な値の一覧を順番に表示できます。 詳細については、「about_Functions_Argument_Completion」を参照してください

列挙値の入力候補

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

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

[Suits]$suit = 'c<Tab>

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

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'

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

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

ステートメントの #requires

#requires -<Ctrl-Space>

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

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

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

<#
    .<Ctrl-Space>

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

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

関連項目