【问题标题】:PowerShell helpfiles not displaying correctlyPowerShell 帮助文件未正确显示
【发布时间】:2017-11-03 18:45:29
【问题描述】:

在 Windows 10 和 Windows Server 2012 上的 PowerShell 4.0、5.0 中测试:

clear
help *-wmiobject*

cls
man *-job*

清屏后帮助文件无法正确显示结果。重新运行命令,它按预期工作。

Get-Help is unaffected.

这是什么原因?

谢谢

【问题讨论】:

    标签: powershell


    【解决方案1】:

    一个有趣的错误。原因(显然)是Powershell显示help()调用的结果后更新了“搜索帮助”的进度条,有效地从顶部清除了从第2行到第9行的8行。解决方法是将结果存储在临时变量中。

    $temp=help *-wmiobject; $temp
    

    这确保函数在显示内容之前已经退出,因此进度条已经从窗口中移除。

    更新:如果您不在 help 的参数中包含星号,则该错误不存在。因此,可能会出现这个bug,因为显示是在help()的“进程”部分完成的,而清除进度条的代码位于函数的“结束”部分。

    【讨论】:

    • :) 试试cls;help param;help param 看看进度条消失后清除了什么:)
    • @JosefZ 好的,从 #3 到 #7 有 5 行。哎呀。
    【解决方案2】:

    我能够在两个 PowerShell 控制台(32/64 位)上的 64 位 Windows 8.1 机器上重现此问题

    短版是与more.com DOS command 相关,manhelp 使用但不是Get-Help

    Get-Help,帮助,伙计:有什么区别?
    Don Jones* 和this $Script Fanatic blog post 更好地解释了:

    更多
    按照博文中的说明运行(Get-ChildItem function:\help).definition,您将在底部看到:

    Get-Help @PSBoundParameters | more
    

    help 基本上将参数绑定到Get-Help Cmdlet 和管道到more。因此,除了您发布的内容外,如果您使用以下内容,您也会遇到同样的问题:

    clear
    Get-Help *et-WmiObjec* | more # doesn't work
    

    我相信Get-Help 默认使用Out-Host 来输出信息(需要引用)。使用Write-Output 也可以。

    clear
    help *-wmiobject* | Out-Host # works
    
    clear
    man *-wmiobject* | Out-Host # works 
    

    最后,当man/help 返回多个结果时,这似乎是一个问题。

    clear
    man get-WmiObject # works
    

    我建议您查看文档和帮助功能来对此进行调查。从(Get-ChildItem function:\more).definition 的结果来看,我怀疑这与处理数组/对象与字符串有关,但这超出了我的知识范围。

    param([string[]]$paths)
    
    $OutputEncoding = [System.Console]::OutputEncoding
    
    if($paths)
    {
        foreach ($file in $paths)
        {
            Get-Content $file | more.com
        }
    }
    else
    {
        $input | more.com
    }
    

    *PowerShell 午餐月,第 2 版,第 23 页

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 2016-01-17
      • 2013-05-15
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      相关资源
      最近更新 更多