在脚本中调用Get-Help格式时会有所不同

时间:2016-01-15 22:01:29

标签: powershell format display

我想知道为什么我的PowerShell get-help在使用我编写的脚本时会输出如下图像。该脚本的目的是在从数组中选择函数时显示get-help信息。

#Run this file in the same directory as the Functions file.

#this function validates user input
function getInput
{
    do
    {
            $input = Read-Host "`n>Enter function # to see its description"

    }until(([int]$input -gt 0) -and ([int]$input -le $flist.count))

    $input
}

#include the script we want
. "$PSScriptRoot\functions.ps1"

#This operates on a loop. After viewing your help info, press key and you will be prompted to choose another function.
$quit = 0
while(!$quit){
    #get all functions
    $f = @(get-content functions.ps1 | where-object { $_.StartsWith("function", "CurrentCultureIgnoreCase") -and (-not $_.Contains("#")); $c++} | sort-object)

     "There are " + $f.count + " functions!"

    #split on ' ', get second word (function name), add to array
    $flist = @{}
    $i = 0
    foreach($line in $f){
        $temp = $line.split(' ')
        $temp[1]
        $i++
        $flist.add($i, $temp[1])
    }

    #print, order ascending
    $flist.GetEnumerator() | sort -Property name

    #accept user input
    $input = getInput

    #get-help about the chosen function
    "Get-Help " + $flist[[int]$input]
    Get-Help Add-ADGrouptoLocalGroup | format-list
    #Get-Help $flist[[int]$input] -full
    Get-Command $flist[[int]$input] -syntax
    Pause
}

目标脚本$PSScriptRoot\Functions.ps1中包含许多功能。我的剧本正在做的是:

  • 列出目标文件中找到的所有功能。
  • 将他们的名字放在索引数组中
  • 在给定索引
  • 处提示用户获取帮助的功能
  • 在所选功能上打印get-help和get-syntax

每个函数都有<#.CHOMOPSIS .DESCRIPTION ... etc#>其中的注释块(您可以在提供的图像中查看函数的详细信息 - 来自函数的注释帮助块)。如果我在目标脚本中对该函数运行get-help,它似乎正常格式化 - 但在使用我写过的脚本时情况并非如此。

真正困扰我的是@ {Text =' stuff'}格式化等等。先谢谢!

My Script's Get-Help output

1 个答案:

答案 0 :(得分:1)

您通过格式列表管理get-help的输出。这"覆盖" PSCustomObject创建的get-help(至少在PS 3.0中)默认格式化PS。你应该能够自己调用get-help而不是管道它。如果这不起作用,请将其通过out-default

有关详细信息,请参阅help about_format