Как вы закомментируете код в PowerShell?

939

Как вы закомментируете код в PowerShell (1.0 или 2.0)?

лабиринт
источник
24
Примечание. «#» - это комментарий во многих языках оболочки и сценариев: bash, python, php, ruby, а теперь и powershell.
yzorg
61
Это именно поэтому я предположил , что #это не комментарий в ОС Windows или Microsoft на основе языка сценариев.
Рене Ниффенеггер,
2
Это потому, что, по-видимому, в отличие от всех других технологий, MS не дала PowerSews достойную ссылку. Я не мог найти это нигде.
dudeNumber4
5
@ dudeNumber4 PowerShell имеет одну из самых полных ссылок на любой язык. Чтобы функция была добавлена ​​к языку, она должна включать в себя исчерпывающую helpдокументацию с примерами, методами, списками членов и т. Д.
TylerH

Ответы:

1251

В 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или внутри {}до или после самого кода.

JPBlanc
источник
45
не знал о комментарии к блоку <# #>. приятно
Деннис G
3
Вы можете найти грамматику для PowerShell v3 здесь: microsoft.com/en-us/download/details.aspx?id=36389 . Посмотрите на раздел B.1.2 Comments.
james.garriss
Я использовал функцию Send-MailMessage с обратными галочками, чтобы поместить каждый параметр в новую строку, и закомментировал один из них (-Bcc), и это вызвало ошибку в следующей строке (-Body: термин «-Body» не распознается как имя командлета ...) Так что кажется, что комментирование строки в середине вызова функции не поддерживается. Может быть, это продолжение строки, может быть, это что-то еще, в любом случае я не ожидал, что это сработает
Давос
Комментировать, как это было бы на самом деле в строке. Ваша команда в конечном итоге будет проанализирована как: Send-MailMessage -To bob@bob.com # Это комментарий -Тему "Помоги мне!" и т. д.
Гражданин Рон
Я нашел более надежным размещать комментарий функции сразу после открытия {( внутри функции). В частности, мне было трудно заставить его работать снаружи с функциями модуля скрипта.
jpmc26
36

Однострочные комментарии начинаются с символа хеша , все справа от них #будет игнорироваться:

# Comment Here

В PowerShell 2.0 и выше могут использоваться многострочные комментарии:

<# 
  Multi 
  Line 
#> 

Вы можете использовать блочные комментарии для встраивания текста комментариев в команду:

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

Примечание. Поскольку PowerShell поддерживает завершение вкладок , необходимо внимательно следить за копированием и вставкой Space + TABперед комментариями.

Александр
источник
3
+1 за показ стиля блочного комментария в одной строке . Я пришел сюда в поисках того, как временно закомментировать отдельные элементы массива, объявленные в одной строке.
Крис Олдвуд
17

Вот

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>
Vic
источник
11
Что это добавляет к существующим ответам?
TZHX
5
Просто держите это простым и прямым
Вик
1
Я думаю, что многие ответы забывают о том, что английский не всегда является родным языком, и слишком многословны и сложны в их преамбуле, прежде чем на самом деле получим ответ. Этот ответ идеально подходит, если перейти непосредственно к примерам, которые мы ищем.
Джефф Грисвальд
15

В PowerShell ISE вы можете нажать Ctrl+, Jчтобы открыть меню Start Snipping и выбрать блок комментариев :

введите описание изображения здесь

Мартин Брандл
источник
Это вставляет новый комментарий блока; это не комментирует существующие строки.
TylerH
3

Ты можешь сделать:

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

 <#
    for more lines
    ...
    ...
    ...
    ..
    .
 #>
Мистер X CT
источник