当我运行语句man tabexpansion
时,它表明我只需要提供-line和-lastword。
然而,当我运行这样的声明时:
tabexpansion -line "c:/win" -lastword "c:/win"
它什么都不返回。
它不应该至少显示C:\ Windows?我做错了什么?
答案 0 :(得分:1)
tabexpansion是在手动命令输入期间执行选项卡处理所涉及的功能。它执行各种类型的对象的完成,例如路径名,变量名,函数/ cmdlet名等。此SO post讨论了此函数的接口。已预订的引用描述了覆盖 TabExpansion2 。
我在别处读到TabExpansion用于PS 2.0,而TabExpansion2用于3.0。
至于为什么TabExpansion没有返回任何内容,我只能回答我的系统(有PS 3.0)。在我的系统cat function:tabexpansion
上给出:
[CmdletBinding()]
param(
[String] $line,
[String] $lastWord
)
process {
if ($line -eq "Install-Module $lastword" -or $line -eq "inmo $lastword"
-or $line -eq "ismo $lastword" -or $line -eq "upmo $lastword"
-or $line -eq "Update-Module $lastword") {
Get-PsGetModuleInfo -ModuleName "$lastword*" | % { $_.Id } | sort -Unique
}
elseif ( Test-Path -Path Function:\$tabExpansionBackup ) {
& $tabExpansionBackup $line $lastWord
}
}
除非$ line以一些特定的标记开头,否则它将转到elseif语句。如果未定义变量$tabexpansionBackup
,则退出该函数而不输出。通过OP中的输入,它可以提供您所看到的输出 - 无。