Jak komentujesz kod w PowerShell?

938

Jak komentujesz kod w PowerShell (1.0 lub 2.0)?

labirynt
źródło
24
Uwaga „#” jest komentarzem w wielu językach powłoki i skryptów: bash, python, php, ruby, a teraz PowerShell.
yzorg
61
To właśnie dlatego przyjmuje się, że #nie jest komentarz w języku skryptowym systemu Windows lub Microsoft opiera.
René Nyffenegger,
2
To dlatego, że najwyraźniej, w przeciwieństwie do wszystkich innych technologii, MS nie dało PowerShellowi godnego odniesienia. Nigdzie nie mogłem go znaleźć.
dudeNumber4
5
@ dudeNumber4 PowerShell ma jedno z najbardziej kompleksowych odniesień w dowolnym języku. Aby funkcja mogła zostać dodana do języka, musi zawierać obszerną helpdokumentację z przykładami, metodami i listami członków itp.
TylerH

Odpowiedzi:

1250

W programie PowerShell V1 #tekst można dodawać tylko po komentarzach.

# This is a comment in Powershell

W programie PowerShell V2 <# #>można używać do blokowania komentarzy, a dokładniej do komentarzy pomocy.

#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
{}

Więcej informacji na temat .SYNOPSISi .*zobacz about_Comment_Based_Help .

Uwaga: Te komentarze funkcji są używane przez Get-HelpCmdLet i mogą być umieszczone przed słowem kluczowym Functionlub wewnątrz samego {}lub przed samym kodem.

JPBlanc
źródło
45
nie wiedziałem o komentarzu blokowym <# #>. miło
Dennis G,
3
Gramatykę dla programu PowerShell v3 można znaleźć tutaj: microsoft.com/en-us/download/details.aspx?id=36389 . Spójrz na sekcję B.1.2 Comments.
james.garriss
Korzystałem z funkcji Send-MailMessage z backtickami, aby umieścić każdy paremeter w nowej linii, i skomentowałem jedną z nich (-Bcc), co spowodowało błąd w następnej linii (-Body: Termin „-Body” to nie jest rozpoznawany jako nazwa polecenia cmdlet ...) Wydaje się, że komentowanie linii w środku wywołania funkcji nie jest obsługiwane. Może to kontynuacja linii, może to coś innego, tak czy inaczej, nie spodziewałbym się, że zadziała
Davos,
Komentowanie w ten sposób byłoby w rzeczywistości in-line. Twoje polecenie skończyłoby się w ten sposób, że: Send-MailMessage -To [email protected] #To jest komentarz -Temat „Pomóż mi!” itp.
CitizenRon
Uważam, że bardziej wiarygodne jest umieszczanie komentarza funkcji bezpośrednio po otwarciu {( wewnątrz funkcji). W szczególności miałem problem z uruchomieniem go poza funkcjami modułu skryptu.
jpmc26
36

Komentarze w jednym wierszu zaczynają się od symbolu skrótu , wszystko po prawej stronie #zostanie zignorowane:

# Comment Here

W programie PowerShell 2.0 i nowszych można stosować komentarze do wielu wierszy bloków:

<# 
  Multi 
  Line 
#> 

Możesz użyć blokowanych komentarzy, aby osadzić tekst komentarza w poleceniu:

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

Uwaga: Ponieważ PowerShell obsługuje uzupełnianie tabulatorów , musisz uważać na kopiowanie i wklejanie Space + TABprzed komentarzami.

Alexander
źródło
3
+1 za pokazanie użycia stylu komentarza do bloku w jednym wierszu . Przybyłem tutaj, aby tymczasowo skomentować poszczególne elementy tablicy wszystkie zadeklarowane w jednym wierszu.
Chris Oldwood,
17

Tutaj

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>
Vic
źródło
11
Co to dodaje do istniejących odpowiedzi?
TZHX
5
Prosto i prosto
Vic
1
Myślę, że w wielu odpowiedziach zapomina się, że angielski nie zawsze jest pierwszym językiem, i jest zbyt gadatliwy i zbyt skomplikowany w swojej preambule, zanim faktycznie dotrze do odpowiedzi. Ta odpowiedź jest idealna, przechodząc bezpośrednio do przykładów, których szukamy.
Geoff Griswald
15

W programie PowerShell ISE możesz nacisnąć Ctrl+, Jaby otworzyć menu Start Snipping i wybrać blok komentarzy :

wprowadź opis zdjęcia tutaj

Martin Brandl
źródło
To wstawia nowy komentarz blokowy; nie komentuje istniejących linii.
TylerH
3

Możesz zrobić:

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

 <#
    for more lines
    ...
    ...
    ...
    ..
    .
 #>
Mister X CT
źródło