Como você comenta o código no PowerShell?

939

Como você comenta o código no PowerShell (1.0 ou 2.0)?

labirinto
fonte
24
Nota '#' é um comentário em muitas linguagens de shell e script: bash, python, php, ruby ​​e agora powershell.
yzorg
61
É exatamente por isso que assumi que #não é um comentário em uma linguagem de script baseada em Windows ou Microsoft.
René Nyffenegger
2
Isso porque, aparentemente, ao contrário de todas as outras tecnologias, a MS não deu ao powershell uma referência decente. Não encontrei em lugar algum.
DudeNumber4 /
5
@ dudeNumber4 O PowerShell tem uma das referências mais abrangentes de qualquer idioma. Para que um recurso a ser adicionado à linguagem, ele deve incluir abrangente helpdocumentação com listas de exemplos, método e membros, etc.
TylerH

Respostas:

1251

No PowerShell V1, há apenas #para tornar o texto após um comentário.

# This is a comment in Powershell

No PowerShell V2, <# #>pode ser usado para bloquear comentários e, mais especificamente, para comentários de ajuda.

#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 obter mais explicações sobre .SYNOPSISe .*consulte about_Comment_Based_Help .

Observação: esses comentários de função são usados ​​pelo Get-HelpCmdLet e ​​podem ser colocados antes da palavra-chave Functionou dentro do {}antes ou depois do próprio código.

JPBlanc
fonte
45
não sabia sobre o comentário do bloco <# #>. agradável
Dennis G
3
Você pode encontrar a gramática do PowerShell v3 aqui: microsoft.com/en-us/download/details.aspx?id=36389 . Veja a seção B.1.2 Comments.
James.garriss
Eu estava usando a função Send-MailMessage, com backticks para colocar cada parâmetro em uma nova linha, e comentei um deles (-Bcc) e causou um erro na próxima linha (-Body: O termo '-Body' é não reconhecido como o nome de um cmdlet ...) Portanto, parece que não há suporte para comentar uma linha no meio de uma chamada para uma função. Talvez seja a de continuação de linha, talvez seja outra coisa, de qualquer forma isso não é como eu iria esperar que ele funcione
Davos
Comentar assim seria realmente alinhado. Seu comando acabaria sendo analisado da seguinte forma: Send-MailMessage -To [email protected] #Este é um comentário -Subject "Help Me!" etc.
CitizenRon
Eu achei mais confiável colocar o comentário da função imediatamente após a abertura {( dentro da função). Em particular, tive problemas para fazê-lo funcionar fora das funções do módulo de script.
Jpmc26 13/04
36

Os comentários de linha única começam com um símbolo de hash ; tudo à direita do #será ignorado:

# Comment Here

No PowerShell 2.0 e acima, os comentários do bloco de várias linhas podem ser usados:

<# 
  Multi 
  Line 
#> 

Você pode usar comentários em bloco para incorporar o texto do comentário em um comando:

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

Nota: Como o PowerShell oferece suporte à Conclusão de guia, você precisa ter cuidado ao copiar e colar Space + TABantes dos comentários.

Alexander
fonte
3
+1 para mostrar o uso do estilo de comentário em bloco em uma única linha . Eu vim aqui procurando como comentar temporariamente elementos individuais de uma matriz, todos declarados em uma linha.
precisa saber é o seguinte
17

Aqui

# Single line comment in Powershell

<# 
--------------------------------------
Multi-line comment in PowerShell V2+ 
-------------------------------------- 
#>
Vic
fonte
11
O que isso acrescenta às respostas existentes?
TZHX 17/09/2015
5
Apenas mantendo-o simples e direto
Vic
1
Acho que muitas das respostas esquecem que o inglês nem sempre é o primeiro idioma e ficam muito verbosas e complexas em seu preâmbulo antes de realmente chegar à resposta. Essa resposta é perfeita, chegando diretamente aos exemplos que estamos procurando.
Geoff Griswald
15

No PowerShell ISE, você pode pressionar Ctrl+ Jpara abrir o menu Iniciar Snipping e selecionar Bloco de comentários :

insira a descrição da imagem aqui

Martin Brandl
fonte
Isso insere um novo comentário em bloco; não comenta linhas existentes.
TylerH 27/02/19
3

Você pode fazer:

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

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