如何在PowerShell中注释掉代码?


938

如何注释掉PowerShell(1.0或2.0)中的代码?


24
注意'#'是许多 shell和脚本语言的注释:bash,python,php,ruby和现在的powershell。
yzorg

61
正是为什么我认为#是不是在基于Windows或微软的脚本语言的注释。
勒内Nyffenegger

2
这是因为,显然,与其他所有技术不同,MS并没有为powershell提供不错的参考。我在任何地方都找不到。
dudeNumber4

5
@ dudeNumber4 PowerShell具有所有语言中最全面的参考之一。为了将功能添加到语言中,它必须包括help具有示例,方法和成员列表等的全面文档
。– TylerH

Answers:


1250

在PowerShell V1中,只能#在注释后添加文本。

# This is a comment in Powershell

在PowerShell V2 <# #>中,可用于块注释,更具体地说,可用于帮助注释。

#REQUIRES -Version 2.0

<#
.SYNOPSIS
    A brief description of the function or script. This keyword can be used
    only once in each topic.
.DESCRIPTION
    A detailed description of the function or script. This keyword can be
    used only once in each topic.
.NOTES
    File Name      : xxxx.ps1
    Author         : J.P. Blanc (jean-paul_blanc@silogix-fr.com)
    Prerequisite   : PowerShell V2 over Vista and upper.
    Copyright 2011 - Jean Paul Blanc/Silogix
.LINK
    Script posted over:
    http://silogix.fr
.EXAMPLE
    Example 1
.EXAMPLE
    Example 2
#>
Function blabla
{}

有关更多信息.SYNOPSIS.*请参见about_Comment_Based_Help

备注:这些功能注释使用的Get-Helpcmdlet,并可以把关键字之前Function,或内部{}之前或代码本身之后。


45
不知道<##>块注释。不错
Dennis G

3
您可以在以下位置找到PowerShell v3的语法: microsoft.com/en-us/download/details.aspx?id=36389。看一节B.1.2 Comments
james.garriss 2015年

我使用的是Send-MailMessage函数,带有反引号将每个参数放在新行上,并注释掉其中一个(-Bcc),并在下一行引起错误(-Body:术语'-Body'是不能识别为cmdlet的名称...)因此,似乎不支持在函数调用的中间注释掉一行。也许是线路延续,也许是其他事情,无论哪种方式,都不是我期望的那样
达沃斯

这样的评论实际上是在线的。您的命令最终将被解析为:Send-MailMessage -To bob@bob.com#这是一条注释-主题“ Help Me!” 等
CitizenRon

我发现在打开后{函数内部)立即放置函数注释更加可靠。特别是,我无法使其在脚本模块功能之外运行。
jpmc26



36

单行注释以井号符号开头,右侧的所有内容都#将被忽略:

# Comment Here

在PowerShell 2.0及更高版本中,可以使用多行块注释:

<# 
  Multi 
  Line 
#> 

您可以使用块注释将注释文本嵌入命令中:

Get-Content -Path <# configuration file #> C:\config.ini

注意:由于PowerShell支持Tab Tab Completion,因此在复制和粘贴Space + TAB注释之前需要格外小心。


3
+1用于在一行中显示块注释样式。我来这里的目的是如何暂时注释掉在一行中声明的数组的各个元素。
克里斯·奥尔德伍德

17

这里

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>

11
这对现有答案有什么作用?
TZHX

5
只是保持简单和直接
Vic

1
我认为许多答案都忘记了英语并非总是母语,而是在真正得到答案之前,在序言中说得太冗长和复杂。这个答案是完美的,直接进入我们正在寻找的例子。
Geoff Griswald

15

在PowerShell ISE中,您可以按Ctrl+ J打开“ 开始截图” 菜单,然后选择“ 注释”块

在此处输入图片说明


这将插入一个新的块注释;它不会注释掉现有的行。
TylerH

3

你(们)能做到:

 (Some basic code) # Use "#" after a line and use:

 <#
    for more lines
    ...
    ...
    ...
    ..
    .
 #>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.