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


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+ 
-------------------------------------- 
#>

11
Что это добавляет к существующим ответам?
TZHX

5
Просто держите это простым и прямым
Вик

1
Я думаю, что многие ответы забывают о том, что английский не всегда является родным языком, и слишком многословны и сложны в их преамбуле, прежде чем на самом деле получим ответ. Этот ответ идеально подходит, если перейти непосредственно к примерам, которые мы ищем.
Джефф Грисвальд

15

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

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


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.