PowerShell でコードをコメントアウトする方法
-
PowerShell の 1 行コメントをコメント記号(
#
)を使用して行う - PowerShell でコメントブロックを使用して複数行をコメントアウトする
-
PowerShell のエッジケースシナリオ
Exit
コマンドを使用することで

他の言語(Bash、Python、Ruby など)を使用したことがある場合、Windows PowerShell でのコメントアウトは似ています。
この記事では、Windows PowerShell でコードをコメントアウトするために使用できるすべてのケースについて説明します。
PowerShell の 1 行コメントをコメント記号(#
)を使用して行う
PowerShell V1.0 は公開されて以来、コードをコメントする機能を備えています。コードをコメントアウトするために、記号(#
)を使用します。この記号は、番号記号やハッシュなど多くの名前で呼ばれますが、Microsoft はこれを公式にコメント記号と呼んでいます。
単一のコメント記号(#
)は、最初の #
から行の終わりまでのコードをコメントアウトします。もちろん、1 行に複数のコメント記号を置くこともできます。
例のコード:
#######################################################
# Examples of one-line comments in Windows PowerShell #
#######################################################
Get-Process -Name *host* #### You could put more.
Get-Process -Name *host* # | Stop-Service # You can use it to comment out a part of a line.
# Get-Process -Name *host* # This will comment out the whole line.
コードをコメントする際には、コメント記号とコードの間にスペースを空けるのがベストプラクティスです。一部の cmdlet はコメント記号を使用しますが、コードのコメントに使用するわけではありません。たとえば、#REQUIRES
cmdlet は、モジュールまたは前提条件のスナップインが満たされない限り、スクリプトの実行を防ぐことで知られている PowerShell 文です。
例のコード:
Get-Module AzureRM.Netcore | Remove-Module
#REQUIRES -Modules AzureRM.Netcore
これらのベストプラクティスを使用することで、スクリプト内の不必要なエラーを回避できます。
PowerShell でコメントブロックを使用して複数行をコメントアウトする
複数行のコードをコメントアウトするために、各行に複数のコメント記号を使用するのではなく、コメント記号を小なり記号(<
)と大なり記号(>
)で便利に囲むことができます。これをコメントブロックと呼びます。
小なり記号(<#
)が付いたコメント記号は、コメントブロックの開始タグとして機能し、大なり記号(#>
)が付いたコメント記号は終了タグとして機能します。
例のコード:
<#
Get-Process -Name *host*
Stop-Service -DisplayName Windows*Update -WhatIf
#>
ただし、新しいコメントブロックタグのセットを挿入してコメントブロックを入れ子にするとエラーが発生します。
例のコード:
<#
Nope, these are not allowed in PowerShell.
<# This will break your first multiline comment block... #>
...and this will throw a syntax error. #This line will execute the throw cmdlet
#>
また、Ctrl+Jを押して Comment Block
をクリックすると、スクリプト内にコードブロックが生成されます。
PowerShell のエッジケースシナリオ Exit
コマンドを使用することで
Exit
コマンドはスクリプト環境を終了させて閉じることを忘れないでください。したがって、Exit
コマンドの後に書かれたものは実行されません。これをエッジケースシナリオと呼びます。Exit
コマンドの後に何かを書くことは可能ですが、推奨されません。他のスクリプト環境がこれらの余分な行を誤解し、エラーを引き起こす可能性があるためです。
例のコード:
Get-Process -Name 'host1'
exit
Anything beyond the `<# exit #>` line is not executed inside the PowerShell scripting environment. However, as mentioned before, this is not recommended despite being possible.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn