Як ви коментуєте код у PowerShell?


938

Як ви коментуєте код у PowerShell (1.0 чи 2.0)?


24
Примітка "#" - це коментар у багатьох мовах оболонок та скриптів: bash, python, php, ruby, а тепер - shellhell.
yzorg

61
Це саме тому я припустив , що #це не коментар в ОС Windows або Microsoft на основі мови сценаріїв.
Рене Ніффенеггер

2
Це тому, що, мабуть, на відміну від усіх інших їхніх технологій, МС не надало повноважень гідної орієнтації. Я не міг його знайти ніде.
dudeNumber4

5
@ dudeNumber4 PowerShell має одне з найбільш вичерпних посилань будь-якої мови. Для того, щоб функція була додана до мови, вона повинна включати вичерпну helpдокументацію із прикладами, методами та списками членів тощо.
TylerH

Відповіді:


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та .*перегляду про_Коментар_Бес_Допомога .

Зауваження: ці коментарі до функцій використовуються Get-HelpCmdLet і можуть бути поставлені перед ключовим словом Function, або всередині {}до або після самого коду.


45
не знав про коментар блоку <# #>. приємно
Денніс Г

3
Ви можете знайти граматику для PowerShell v3 тут: microsoft.com/en-us/download/details.aspx?id=36389 . Подивіться на розділ B.1.2 Comments.
james.garriss

Я використовував функцію Send-MailMessage із зворотними посиланнями, щоб поставити кожен параметр у новий рядок, і прокоментував один із них (-Bcc), і це спричинило помилку в наступному рядку (-Боді: Термін '-Боді' - це не розпізнається як ім'я командлету ...) Тому здається, що коментування рядка посеред дзвінка до функції не підтримується. Можливо, це продовження рядка, можливо, це щось інше, в будь-якому випадку це не так, як я б очікував, що це спрацює
Давос

Коментувати подібне було б насправді inline. Ваша команда в кінцевому підсумку буде розібрана на зразок: Send-MailMessage -To bob@bob.com #Це коментар -Підмітка "Допоможи мені!" пр.
CitizenRon

Я вважаю більш надійним розмістити коментар до функції відразу після відкриття {( всередині функції). Зокрема, у мене виникли проблеми з тим, щоб він працював зовні з функціями модуля сценарію.
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щоб відкрити меню « Пуск прорізування » та вибрати блок «Коментар» :

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


Це вставляє новий коментар до блоку; він не коментує існуючі рядки.
TylerH

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.