¿Cómo comentas el código en PowerShell?

939

¿Cómo comentas el código en PowerShell (1.0 o 2.0)?

laberinto
fuente
24
Nota '#' es un comentario en muchos lenguajes de shell y script: bash, python, php, ruby ​​y ahora powershell.
yzorg
61
Esto es exactamente por qué supuse que #no es un comentario en un lenguaje de script basado en Windows o Microsoft.
René Nyffenegger
2
Eso es porque, aparentemente, a diferencia de todas sus otras tecnologías, MS no le dio a powershell una referencia decente. No pude encontrarlo en ningún lado.
dudeNumber4
55
@ dudeNumber4 PowerShell tiene una de las referencias más completas de cualquier idioma. Para que una característica se agregue al idioma, debe incluir helpdocumentación completa con ejemplos, métodos y listas de miembros, etc.
TylerH

Respuestas:

1251

En PowerShell V1 solo hay #que hacer el texto después de él un comentario.

# This is a comment in Powershell

En PowerShell V2 <# #>se puede usar para comentarios de bloque y más específicamente para comentarios de ayuda.

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

Para obtener más explicaciones .SYNOPSISy .*ver about_Comment_Based_Help .

Observación: Get-HelpCmdLet utiliza estos comentarios de función y se pueden colocar antes de la palabra clave Functiono dentro {}del código anterior o posterior.

JPBlanc
fuente
45
no sabía sobre el comentario del bloque <# #>. agradable
Dennis G
3
Puede encontrar la gramática de PowerShell v3 aquí: microsoft.com/en-us/download/details.aspx?id=36389 . Mira la sección B.1.2 Comments.
james.garriss
Estaba usando la función Send-MailMessage, con backticks para poner cada parámetro en una nueva línea, y comenté uno de ellos (-Bcc) y causó un error en la siguiente línea (-Body: el término '-Body' es no reconocido como el nombre de un cmdlet ...) Por lo tanto, parece que no se admite comentar una línea en el medio de una llamada a una función. Tal vez sea la continuación de la línea, tal vez sea otra cosa, de cualquier manera no es así como esperaría que funcionara
Davos
Comentando así sería realmente en línea. Su comando terminaría siendo analizado como: Send-MailMessage -To [email protected] #Este es un comentario -Sujeto "¡Ayúdame!" etc.
CitizenRon
He encontrado que es más confiable colocar el comentario de la función inmediatamente después de la apertura {( dentro de la función). En particular, tuve problemas para que funcione fuera con las funciones del módulo de script.
jpmc26
36

Los comentarios de una sola línea comienzan con un símbolo hash , #se ignorará todo a la derecha del :

# Comment Here

En PowerShell 2.0 y versiones posteriores, se pueden utilizar comentarios de bloque de varias líneas:

<# 
  Multi 
  Line 
#> 

Puede usar comentarios de bloque para incrustar texto de comentario dentro de un comando:

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

Nota: Debido a que PowerShell admite la finalización de pestañas , debe tener cuidado al copiar y pegar Space + TABantes de los comentarios.

Alejandro
fuente
3
+1 para mostrar el uso del estilo de comentario de bloque dentro de una sola línea . Vine aquí buscando cómo comentar temporalmente elementos individuales de una matriz, todos declarados en una línea.
Chris Oldwood
17

aquí

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>
Vic
fuente
11
¿Qué agrega esto a las respuestas existentes?
TZHX
55
Simplemente manteniéndolo simple y directo
Vic
1
Creo que muchas de las respuestas olvidan que el inglés no siempre es el primer idioma, y ​​se vuelven demasiado detalladas y complejas en su preámbulo antes de llegar a la respuesta. Esta respuesta es perfecta, llegando directamente a los ejemplos que estamos buscando.
Geoff Griswald
15

Dentro de PowerShell ISE puede presionar Ctrl+ Jpara abrir el menú Iniciar recorte y seleccionar Bloque de comentarios :

ingrese la descripción de la imagen aquí

Martin Brandl
fuente
Esto inserta un nuevo comentario de bloque; no comenta las líneas existentes.
TylerH
3

Puedes hacer:

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

 <#
    for more lines
    ...
    ...
    ...
    ..
    .
 #>
Mister X CT
fuente