显示如何在Windows PowerShell 3.0中覆盖TabExpansion2的示例

前端之家收集整理的这篇文章主要介绍了显示如何在Windows PowerShell 3.0中覆盖TabExpansion2的示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有人有一个示例显示如何覆盖 Windows PowerShell 3.0中的TabExpansion2功能?我知道如何覆盖旧的TabExpansion功能,但是我想在PowerShell ISE中提供智能感知的项目列表.我查看了TabExpansion2的定义,并且不容易理解,我如何在标签扩展过程中注入自己的代码.
我认为这个例子应该给你一个很好的起点: Windows Powershell Cookbook: Sample implementation of TabExpansion2.示例代码显示可以在默认调用之前和之后添加代码[CommandCompletion] :: CompleteInput.

例如,您可以向$options hashtable添加一个名为CustomArgumentCompleters的条目,以获取命令参数的自定义完成.条目应该是一个哈希表,其中键是参数名称(例如“ComputerName”或“Get-ChildItem:Filter”),并且值是可用于完成该参数的值数组. Powertheshell.com还有一篇文章Dynamic Argument Completion.您还可以使用NativeArgumentCompleters选项指定本机可执行文件自定义完成(同样,键是命令名称,值是可能的完成数组).

OnceCompleteInput已返回,您可以将结果存储在$result中进行进一步分析.结果是CommandCompletion课程的一个实例.如果默认完成没有找到任何匹配,您可以将自己的CompletionResult条目添加到匹配列表中:

$result.CompletionMatches.Add(
   (New-Object Management.Automation.CompletionResult "my completion string") )

不要忘记从函数返回$result,所以完成实际发生.

最后,有关故障排除的说明:调用TabCompletion2的代码似乎会抑制所有基于控制台的输出(不出意外),因此,如果要为自己编写调试消息,可以尝试将它们写入单独的文本文件.例如,您可以将TabCopmletion2中的End函数更改为:

$result = [System.Management.Automation.CommandCompletion]::CompleteInput(
    $inputScript,$cursorColumn,$options)
$result | Get-Member | Add-Content "c:\TabCompletionLog.txt"
$result
原文链接:https://www.f2er.com/windows/371038.html

猜你在找的Windows相关文章