Jak komentujesz kod w PowerShell?


938

Jak komentujesz kod w PowerShell (1.0 lub 2.0)?


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.


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 bob@bob.com #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.


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

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


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
    ...
    ...
    ...
    ..
    .
 #>
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.