Làm thế nào để bạn nhận xét mã trong PowerShell?


938

Làm thế nào để bạn nhận xét mã trong PowerShell (1.0 hoặc 2.0)?


24
Lưu ý '#' là một nhận xét bằng nhiều ngôn ngữ shell và script: bash, python, php, ruby, và giờ là powershell.
yzorg

61
Đây chính xác là lý do tại sao tôi cho rằng đó #không phải là một nhận xét bằng ngôn ngữ kịch bản dựa trên Windows hoặc Microsoft.
René Nyffalanger

2
Đó là bởi vì, rõ ràng, không giống như tất cả các công nghệ khác của họ, MS đã không cung cấp cho các quyền lực một tài liệu tham khảo hợp lý. Tôi không thể tìm thấy nó ở bất cứ đâu.
dudeNumber4

5
@ dudeNumber4 PowerShell có một trong những tài liệu tham khảo toàn diện nhất về bất kỳ ngôn ngữ nào. Để một tính năng được thêm vào ngôn ngữ, nó phải bao gồm helptài liệu toàn diện với các ví dụ, phương pháp và danh sách thành viên, v.v.
TylerH

Câu trả lời:


1250

Trong PowerShell V1 chỉ có #thể tạo văn bản sau khi nhận xét.

# This is a comment in Powershell

Trong PowerShell V2 <# #>có thể được sử dụng cho các bình luận khối và cụ thể hơn là các bình luận trợ giúp.

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

Để biết thêm giải thích về .SYNOPSIS.*xem about_Ver_Basing_Help .

Ghi chú: Các nhận xét chức năng này được Get-HelpCmdLet sử dụng và có thể được đặt trước từ khóa Functionhoặc bên trong {}trước hoặc sau chính mã.


45
không biết về nhận xét khối <# #>. tốt đẹp
Dennis G

3
Bạn có thể tìm thấy ngữ pháp cho PowerShell v3 tại đây: microsoft.com/en-us/doad/details.aspx?id=36389 . Nhìn vào phần B.1.2 Comments.
james.garriss

Tôi đã sử dụng chức năng Send-MailMessage, với các backticks để đặt từng paremeter trên một dòng mới và nhận xét một trong số chúng (-Bcc) và nó đã gây ra lỗi trên dòng tiếp theo (-Body: Thuật ngữ '-Body' là không được công nhận là tên của một lệnh ghép ngắn ...) Vì vậy, có vẻ như việc bình luận một dòng ở giữa một cuộc gọi đến một chức năng không được hỗ trợ. Có lẽ đó là sự tiếp nối dòng, có thể đó là một cái gì đó khác, dù theo cách nào đó không phải là cách tôi mong đợi nó hoạt động
Davos

Bình luận như thế sẽ thực sự phù hợp. Lệnh của bạn cuối cùng sẽ được phân tích cú pháp như: Send-MailMessage -To bob@bob.com # Đây là một nhận xét -Subject "Giúp tôi với!" v.v.
CitizenRon

Tôi đã thấy đáng tin cậy hơn khi đặt nhận xét chức năng ngay sau khi mở {( bên trong chức năng). Cụ thể, tôi đã gặp sự cố khi làm cho nó hoạt động bên ngoài với các chức năng mô-đun kịch bản.
jpmc26



36

Nhận xét dòng đơn bắt đầu bằng ký hiệu băm , mọi thứ ở bên phải #sẽ bị bỏ qua:

# Comment Here

Trong PowerShell 2.0 trở lên, có thể sử dụng nhận xét khối nhiều dòng:

<# 
  Multi 
  Line 
#> 

Bạn có thể sử dụng khối nhận xét để nhúng văn bản nhận xét trong một lệnh:

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

Lưu ý: Vì PowerShell hỗ trợ Hoàn thành Tab, bạn cần cẩn thận về việc sao chép và dán Space + TABtrước khi nhận xét.


3
+1 để hiển thị kiểu nhận xét khối sử dụng trong một dòng . Tôi đến đây để tìm cách bình luận tạm thời các phần tử riêng lẻ của một mảng được khai báo trên một dòng.
Chris Oldwood

17

Đây

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>

11
Điều này thêm gì vào câu trả lời hiện có?
TZHX

5
Chỉ cần giữ cho nó đơn giản và trực tiếp
Vic

1
Tôi nghĩ rằng rất nhiều câu trả lời quên rằng tiếng Anh không phải lúc nào cũng là ngôn ngữ đầu tiên và quá rắc rối và phức tạp trong lời mở đầu của họ trước khi thực sự có câu trả lời. Câu trả lời này là hoàn hảo, nhận trực tiếp đến các ví dụ mà chúng tôi đang tìm kiếm.
Geoff Griswald

15

Trong PowerShell ISE, bạn có thể nhấn Ctrl+ Jđể mở menu Bắt đầu cắt và chọn Khối nhận xét :

nhập mô tả hình ảnh ở đây


Điều này chèn một bình luận khối mới; nó không bình luận ra các dòng hiện có.
TylerH

3

Bạn có thể làm:

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

 <#
    for more lines
    ...
    ...
    ...
    ..
    .
 #>
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.