powershell - Powershell 基于注释的脚本帮助
问题描述
我无法在我的脚本中访问基于评论的帮助。
我正在使用的命令是这样的:
PS C:\MyDir> Get-Help .\do-something.ps1 -Full
(do-something.ps1 在 MyDir 中)。
我的问题是:
我是否应该期望此命令在 ISE 控制台窗格和 PS 控制台中的工作方式相同?
我已经查看了Microsoft 文档并提炼了以下内容。我错过了什么吗?是否存在基于评论的帮助根本不起作用的情况?
PowerShell 不会解析脚本的基于注释的帮助,除非:
Comment-Based Help 部分从脚本的第一行开始,或者前面只有空行。
如果基于注释的帮助部分后跟函数声明,则在它之后至少有两个空行。
脚本文件位于 $env:PATH 中的目录中。如果 -Path 参数不在 $env:Path 中,则必须使用它。
仅使用有效的基于注释的帮助关键字。如果您拼错了一个,Get-Help 命令将静默失败,不会出现任何错误。
Get-Help 命令使用正确的语法,例如:
PS C:\MyDir> Get-Help .\do-something.ps1 -Full
- 基于评论的帮助部分格式正确,例如:
位于脚本文件的顶部:
<#
.SYNOPSIS
Does something.
.DESCRIPTION
Performs tasks and produces output.
#>
解决方案
我是否应该期望此命令在 ISE 控制台窗格和 PS 控制台中的工作方式相同?
是的。基于注释的帮助由 PowerShell ( system.management.automation.dll
) 而非主机解析。
是否存在基于评论的帮助根本不起作用的情况?
仅当脚本可以执行时,基于注释的帮助才有效。如果像 AppLocker 这样的执行策略或应用程序控件禁止执行脚本,或者脚本中存在语法错误,Get-Help
则无法显示基于注释的帮助。
推荐阅读
- sql - 如何选择函数定义作为查询?
- javascript - 显示表格行的函数
- c# - Automapper 从 ISource => IDest 映射通用属性,然后指定剩余的映射
- docker - Elastic Beanstalk 上的 Docker => 使用环境配置运行终端
- recurring-events - FullCalendar V4 - 如何在重复事件系列中计算较短的月份?
- r - 使用 purrr 在多个列表上迭代(非同时)?
- angular - 当表单位于子组件中时,禁用/启用父组件中的提交按钮
- excel - 如果变量范围> 3,则执行其他操作
- javascript - 检查键是否在对象中
- windows - 为什么 Active Directory 主目录查询在 Get-ADuser 中与在 AD 管理面板中返回不同?