How do you comment out code in PowerShell?

前端 未结 10 1556
傲寒
傲寒 2020-12-12 08:59

How do you comment out code in PowerShell (1.0 or 2.0)?

相关标签:
10条回答
  • 2020-12-12 09:30

    Here

    # Single line comment in Powershell
    
    <# 
    --------------------------------------
    Multi-line comment in PowerShell V2+ 
    -------------------------------------- 
    #>
    
    0 讨论(0)
  • 2020-12-12 09:32

    I'm a little bit late to this party but seems that nobody actually wrote all use cases. So...

    Only supported version of PowerShell these days (fall of 2020 and beyond) are:

    • Windows PowerShell 5.1.x
    • PowerShell 7.0.x.

    You don't want to or you shouldn't work with different versions of PowerShell.

    Both versions (or any another version which you could come around WPS 3.0-5.0, PS Core 6.x.x on some outdated stations) share the same comment functionality.

    One line comments

    # Get all Windows Service processes <-- one line comment, it starts with '#'
    Get-Process -Name *host*
    
    Get-Process -Name *host* ## You could put as many ### as you want, it does not matter
    
    Get-Process -Name *host* # | Stop-Service # Everything from the first # until end of the line is treated as comment
    
    Stop-Service -DisplayName Windows*Update # -WhatIf # You can use it to comment out cmdlet switches
    

    Multi line comments

    <#
    Everyting between '< #' and '# >' is 
    treated as a comment. A typical use case is for help, see below.
    
    # You could also have a single line comment inside the multi line comment block.
    # Or two... :)
    
    #>
    
    <#
    .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
        Some additional notes. This keyword can be used only once in each topic.
        This keyword can be used only once in each topic.
    
    .LINK
        A link used when Get-Help with a switch -OnLine is used.
        This keyword can be used only once in each topic.
    
    .EXAMPLE
        Example 1
        You can use this keyword as many as you want.
    
    .EXAMPLE
        Example 2
        You can use this keyword as many as you want.
    #>
    

    Nested multi line comments

    <#
    Nope, these are not allowed in PowerShell.
    
    <# This will break your first multiline comment block... #>
    ...and this will throw a syntax error.
    #>
    

    In code nested multi line comments

    <# 
    The multi line comment opening/close
    can be also used to comment some nested code
    or as an explanation for multi chained operations..
    #>
    Get-Service | <# Step explanation #>
    Where-Object { $_.Status -eq [ServiceProcess.ServiceControllerStatus]::Stopped } | 
    <# Format-Table -Property DisplayName, Status -AutoSize |#>
    Out-File -FilePath Services.txt -Encoding Unicode
    

    Edge case scenario

    # Some well written script
    exit
    Writing something after exit is possible but not recommended.
    It isn't a comment.
    Especially in Visual Studio Code, these words baffle PSScriptAnalyzer.
    You could actively break your session in VS Code.
    
    0 讨论(0)
  • 2020-12-12 09:34

    Within PowerShell ISE you can hit Ctrl+J to open the Start Snipping menu and select Comment block:

    0 讨论(0)
  • 2020-12-12 09:35

    In PowerShell V1 there's only # to make the text after it a comment.

    # This is a comment in Powershell
    

    In PowerShell V2 <# #> can be used for block comments and more specifically for help comments.

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

    For more explanation about .SYNOPSIS and .* see about_Comment_Based_Help.

    Remark: These function comments are used by the Get-Help CmdLet and can be put before the keyword Function, or inside the {} before or after the code itself.

    0 讨论(0)
  • 2020-12-12 09:39

    There is a special way of inserting comments add the end of script:

    ....
    exit 
    
    Hi
    Hello
    We are comments
    And not executed 
    

    Anything after exit is not executed, and behave quite like comments.

    0 讨论(0)
  • 2020-12-12 09:41

    It's the #.

    See PowerShell - Special Characters And Tokens for special characters.

    0 讨论(0)
提交回复
热议问题