about_Tab_Expansion
Krátký popis
PowerShell poskytuje dokončování na vstupu, které poskytují rady, umožňují zjišťování a urychlují zadávání vstupu. Názvy příkazů, názvy parametrů, hodnoty argumentů a cesty k souborům je možné dokončit stisknutím klávesy Tab .
Dlouhý popis
Rozšíření tabulátoru je řízeno interní funkcí TabExpansion2. Vzhledem k tomu, že tuto funkci lze upravit nebo přepsat, je tato diskuze průvodce chováním výchozí konfigurace PowerShellu.
Chování rozšíření tabulátoru lze také upravit pomocí funkce Prediktivní IntelliSense modulu PSReadLine. Další informace naleznete v tématu Prediktivní technologie IntelliSense.
Klávesa Tab je výchozí vazbou kláves ve Windows. Klávesové zkratky můžete změnit pomocí modulu PSReadLine nebo aplikace, která je hostitelem PowerShellu. Vazby klíčů se liší na platformách jiných než Windows. Další informace najdete v tématu about_PSReadLine.
Poznámka:
Jedním z omezení procesu rozšíření karty je, že karty jsou vždy interpretovány jako pokusy o dokončení slova. Pokud zkopírujete a vložíte příklady příkazů do konzoly PowerShellu, ujistěte se, že ukázka neobsahuje karty. Pokud ano, výsledky budou nepředvídatelné a téměř jistě nebudou tím, co jste chtěli.
Dokončení názvu souboru a rutiny
Pokud chcete automaticky vyplnit název souboru nebo cestu z dostupných voleb, zadejte část názvu a stiskněte klávesu Tab . PowerShell automaticky rozbalí název na první nalezenou shodu. Opakovaným stisknutím klávesy Tab prochází všechny dostupné volby.
Rozšíření karet názvů rutin se mírně liší. Pokud chcete pro název rutiny použít rozšíření tabulátoru, zadejte celou první část názvu (sloveso) a spojovník, který za ním následuje. Můžete vyplnit více názvu částečné shody.
Pokud například zadáte get-co
a stisknete klávesu Tab , PowerShell tuto rutinu Get-Command
automaticky rozbalí. Všimněte si, že také změní písmena na jejich standardní formulář. Pokud znovu stisknete klávesu Tab , PowerShell ho nahradí jediným odpovídajícím názvem Get-Content
rutiny.
Poznámka:
Od PowerShellu 7.0 se také rozbalí zkrácené rutiny a funkce. Například i-psdf<tab>
vrátí Import-PowerShellDataFile
.
Dokončování tabulátoru funguje také při překladu aliasů PowerShellu a nativních spustitelných souborů.
Rozšíření tabulátoru můžete použít opakovaně na stejném řádku. Například rozšíření tabulátoru Get-Content
u názvu rutiny můžete použít zadáním:
Příklady
PS> Get-Con<Tab>
Když stisknete klávesu Tab , příkaz se rozbalí na:
PS> Get-Content
Pak můžete částečně zadat cestu k souboru protokolu aktivní instalace a znovu použít rozšíření tabulátoru:
PS> Get-Content c:\windows\acts<Tab>
Když stisknete klávesu Tab , příkaz se rozbalí na:
PS> Get-Content C:\windows\actsetup.log
PsReadLine má také funkci dokončování nabídky. Výchozí vazba kláves ve Windows je mezerník ctrl+.
PS> fore<Ctrl-Space>
Když stisknete klávesu Ctrl+, PowerShell zobrazí úplný seznam odpovídajících hodnot jako nabídku:
PS> foreach
foreach ForEach-Object foreach.cmd
V tomto příkladu se řetězec "fore" shoduje s foreach
(alias PowerShellu), ForEach-Object
(rutina) a foreach.cmd
(nativní příkaz). Pomocí kláves se šipkami vyberte požadovanou hodnotu.
Dokončování argumentů parametru
Dokončování tabulátoru může také fungovat na dokončení argumentů parametrů. Pomocí klávesy Tab můžete cyklicky procházet seznamem možných hodnot, které jsou platné pro určitý parametr. Další informace najdete v tématu about_Functions_Argument_Completion.
Dokončení výčtu hodnoty
PowerShell 7.0 přidal podporu pro dokončování výčtů. Pomocí dokončování tabulátoru můžete vybrat požadovanou hodnotu kdekoli, kde použijete výčt. Příklad:
enum Suits {
Clubs = 0
Diamonds = 1
Hearts = 2
Spades = 3
}
[Suits]$suit = 'c<Tab>
Výčtové hodnoty jsou řetězce, takže hodnota, která má být dokončena, musí začínat jedním nebo dvojitým uvozovkovým znakem.
Po stisknutí klávesy Tab se zobrazí následující výsledky:
[Suits]$suit = 'Clubs'
Dokončování tabulátoru funguje také s výčty .NET.
[System.IO.FileAttributes]$attr = 'S<Tab><Tab>
Stisknutím klávesy Tab dvakrát projdete dvěma hodnotami, které začínají písmenem S
. Konečný výsledek je:
[System.IO.FileAttributes]$attr = 'System'
Od PowerShellu 7.0 bylo rozšíření tabulátoru přidáno pro hodnoty ValidateSet
při přiřazování proměnné. Pokud jste například zadávali následující definici proměnné:
[ValidateSet('Chocolate', 'Strawberry', 'Vanilla')]
[string]$flavor = 'Strawberry'
$flavor = <tab>
Když stisknete klávesu Tab , zobrazí se následující výsledek:
$flavor = 'Chocolate'
Dokončování tabulátoru pro klíčová slova založená na komentářích
Od PowerShellu 7.2 byla přidána podpora pro dokončování #requires
parametrů pomocí tabulátoru a klíčových slov pro nápovědu založenou na komentářích.
Příklad příkazu #requires
#requires -<Ctrl-Space>
Rozšíření nabídky zobrazuje následující možnosti parametrů:
#requires -<Ctrl-Space>
Modules PSEdition RunAsAdministrator Version
Příklad nápovědy založené na komentářích
<#
.<Ctrl-Space>
Rozšíření nabídky zobrazuje následující možnosti klíčových slov:
<#
.COMPONENT
COMPONENT EXTERNALHELP FUNCTIONALITY NOTES REMOTEHELPRUNSPACE
DESCRIPTION FORWARDHELPCATEGORY INPUTS OUTPUTS ROLE
EXAMPLE FORWARDHELPTARGETNAME LINK PARAMETER SYNOPSIS