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


939

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


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.


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


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

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í


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
    ...
    ...
    ...
    ..
    .
 #>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.