如何在PowerShell(1.0或2.0)中注释掉代码?
在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-Help CmdLet使用,可以放在关键字function之前,或者放在代码本身之前或之后的{}内部。
Here
# Single line comment in PowerShell
<#
--------------------------------------
Multi-line comment in PowerShell V2+
--------------------------------------
#>
单行注释以散列符号开始,#右边的所有内容将被忽略:
# Comment Here
在PowerShell 2.0及以上版本中,可以使用多行块注释:
<#
Multi
Line
#>
你可以使用块注释将注释文本嵌入到命令中:
Get-Content -Path <# configuration file #> C:\config.ini
注意:因为PowerShell支持制表符补全,所以在注释之前要小心复制和粘贴空格+制表符。
你可以做:
(Some basic code) # Use "#" after a line and use:
<#
for more lines
...
...
...
..
.
#>
有一种特殊的方法可以在脚本末尾添加注释:
....
exit
Hi
Hello
We are comments
And not executed
退出后的任何内容都不会执行,并且表现得很像注释。
我参加这个聚会有点晚了,但似乎没有人实际上写了所有的用例。所以…
目前(2020年秋季及以后)仅支持的PowerShell版本是:
Windows PowerShell 5.1.x PowerShell 7.0.x。
您不希望或不应该使用不同版本的PowerShell。
两个版本(或任何其他版本,你可以在WPS 3.0-5.0, PS Core 6.x。X在一些过时的站)共享相同的评论功能。
一行注释
# Get all Windows Service processes <-- one line comment, it starts with '#'
Get-Process -Name *host*
Get-Process -Name *host* ## You could put as many ### as you want, it does not matter
Get-Process -Name *host* # | Stop-Service # Everything from the first # until end of the line is treated as comment
Stop-Service -DisplayName Windows*Update # -WhatIf # You can use it to comment out cmdlet switches
多行注释
<#
Everyting between '< #' and '# >' is
treated as a comment. A typical use case is for help, see below.
# You could also have a single line comment inside the multi line comment block.
# Or two... :)
#>
<#
.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
Some additional notes. This keyword can be used only once in each topic.
This keyword can be used only once in each topic.
.LINK
A link used when Get-Help with a switch -OnLine is used.
This keyword can be used only once in each topic.
.EXAMPLE
Example 1
You can use this keyword as many as you want.
.EXAMPLE
Example 2
You can use this keyword as many as you want.
#>
嵌套的多行注释
<#
Nope, these are not allowed in PowerShell.
<# This will break your first multiline comment block... #>
...and this will throw a syntax error.
#>
在代码中嵌套多行注释
<#
The multi line comment opening/close
can be also used to comment some nested code
or as an explanation for multi chained operations..
#>
Get-Service | <# Step explanation #>
Where-Object { $_.Status -eq [ServiceProcess.ServiceControllerStatus]::Stopped } |
<# Format-Table -Property DisplayName, Status -AutoSize |#>
Out-File -FilePath Services.txt -Encoding Unicode
边缘情况
# Some well written script
exit
Writing something after exit is possible but not recommended.
It isn't a comment.
Especially in Visual Studio Code, these words baffle PSScriptAnalyzer.
You could actively break your session in VS Code.
使用一个带有空格(!)的标签:
# Comment here
别忘了这里的留白!否则它会干扰内部命令。
例如,这不是评论:
#requires -runasadmin
推荐文章
- 调用webrequest, POST参数
- JavaScript错误(Uncaught SyntaxError:意外的输入结束)
- 在Bash中测试非零长度字符串:[-n "$var"]或["$var"]
- 无法加载.ps1,因为在此系统上禁止执行脚本
- Shell脚本for循环语法
- 如何获得正在执行的cmdlet的当前目录
- 如何从批处理文件运行PowerShell脚本
- 如何从PowerShell中的外部进程捕获输出到变量?
- 这在PHP中意味着什么:->或=>
- C或c++中的单引号与双引号
- TypeScript注释的语法记录在哪里?
- 如何将PowerShell的输出重定向到执行期间的文件
- “+new Date”中加号的作用是什么
- 如何告诉PowerShell等待每个命令结束后才开始下一个?
- CSV文件可以有注释吗?