加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:08:18 所属栏目:Windows 来源:网络整理
导读:有没有人有一个示例显示如何覆盖 Windows PowerShell 3.0中的TabExpansion2功能?我知道如何覆盖旧的TabExpansion功能,但是我想在PowerShell ISE中提供智能感知的项目列表.我查看了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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读