首页 > 解决方案 > Powershell 基于注释的脚本帮助

问题描述

我无法在我的脚本中访问基于评论的帮助。

我正在使用的命令是这样的:

PS C:\MyDir> Get-Help .\do-something.ps1 -Full (do-something.ps1 在 MyDir 中)。

我的问题是:

我是否应该期望此命令在 ISE 控制台窗格和 PS 控制台中的工作方式相同?

我已经查看了Microsoft 文档并提炼了以下内容。我错过了什么吗?是否存在基于评论的帮助根本不起作用的情况?

PowerShell 不会解析脚本的基于注释的帮助,除非:

  1. Comment-Based Help 部分从脚本的第一行开始,或者前面只有空行。

  2. 如果基于注释的帮助部分后跟函数声明,则在它之后至少有两个空行。

  3. 脚本文件位于 $env:PATH 中的目录中。如果 -Path 参数不在 $env:Path 中,则必须使用它。

  4. 仅使用有效的基于注释的帮助关键字。如果您拼错了一个,Get-Help 命令将静默失败,不会出现任何错误。

  5. Get-Help 命令使用正确的语法,例如:

PS C:\MyDir> Get-Help .\do-something.ps1 -Full

  1. 基于评论的帮助部分格式正确,例如:

位于脚本文件的顶部:

<#
.SYNOPSIS
Does something.

.DESCRIPTION
Performs tasks and produces output.
#>

标签: powershellsyntaxhelp-system

解决方案


我是否应该期望此命令在 ISE 控制台窗格和 PS 控制台中的工作方式相同?

是的。基于注释的帮助由 PowerShell ( system.management.automation.dll) 而非主机解析。

是否存在基于评论的帮助根本不起作用的情况?

仅当脚本可以执行时,基于注释的帮助才有效。如果像 AppLocker 这样的执行策略或应用程序控件禁止执行脚本,或者脚本中存在语法错误,Get-Help则无法显示基于注释的帮助。


推荐阅读