Auskommentieren von Code in PowerShell

  1. Einzeilige PowerShell-Kommentare mit dem Kommentarsymbol (#)
  2. PowerShell: Auskommentieren mehrerer Zeilen mithilfe von Kommentarblöcken
  3. PowerShell Edge Case-Szenario mit dem Befehl Exit
Auskommentieren von Code in PowerShell

Wenn Sie andere Sprachen wie Bash, Python und Ruby verwendet haben, ist das Auskommentieren in Windows PowerShell ähnlich.

In diesem Artikel werden alle Anwendungsfälle erläutert, die wir zum Auskommentieren von Code in Windows PowerShell verwenden können.

Einzeilige PowerShell-Kommentare mit dem Kommentarsymbol (#)

PowerShell V1.0 wurde von Anfang an mit der Möglichkeit, Code zu kommentieren, ausgeliefert und für die Öffentlichkeit freigegeben. Mit dem Symbol (#) kommentieren wir den Code aus. Wir nennen dieses Symbol viele Namen wie das Nummernzeichen oder das Hash, aber Microsoft nannte es offiziell das Kommentarsymbol.

Ein einzelnes Kommentarsymbol (#) kommentiert den Code vom ersten # bis zum Zeilenende aus. Natürlich können Sie auch mehrere Kommentarsymbole in einer Zeile platzieren.

Beispielcode:

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

Wenn Sie Code kommentieren, empfiehlt es sich, ein Leerzeichen zwischen dem Kommentarsymbol und Ihrem Code zu lassen. Einige Cmdlets verwenden das Kommentarsymbol jedoch nicht zum Kommentieren von Code. Beispielsweise ist das Cmdlet #REQUIRES eine bekannte PowerShell-Anweisung, die verhindert, dass ein Skript ausgeführt wird, wenn die Module oder vorausgesetzten Snap-Ins nicht erfüllt sind.

Beispielcode:

Get-Module AzureRM.Netcore | Remove-Module
#REQUIRES -Modules AzureRM.Netcore

Mit diesen Best Practices können wir unnötige Fehler in unserem Skript vermeiden.

PowerShell: Auskommentieren mehrerer Zeilen mithilfe von Kommentarblöcken

Um mehrere Codezeilen auszukommentieren, ohne mehrere Kommentarsymbole pro Zeile zu verwenden, können wir unser Kommentarsymbol bequem in Kleiner-als- (<) und Größer-als-Zeichen (>) einschließen. Wir nennen dies einen Kommentarblock.

Das Kommentarsymbol mit dem Kleiner-als-Zeichen (<#) dient als öffnendes Tag für unseren Kommentarblock, während das Kommentarsymbol mit dem Größer-als-Zeichen als schließendes Tag (#>) dient.

Beispielcode:

<#
Get-Process -Name *host*
Stop-Service -DisplayName Windows*Update -WhatIf
#>

Es ist erwähnenswert, dass Sie ein einzelnes Kommentarsymbol zwischen den Kommentarblock einfügen könnten.

Beispielcode:

<#
Get-Process -Name 'host1'

#Tested up until this point

Stop-Service -DisplayName Windows*Update -WhatIf
#>

Das Verschachteln von Kommentarblöcken durch Einfügen eines neuen Satzes von Kommentarblock-Tags führt jedoch zu einem Fehler.

Beispielcode:

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

Alternativ wird durch Drücken von Ctrl+J und Klicken auf Kommentarblock ein Codeblock in Ihrem Skript generiert.

PowerShell Edge Case-Szenario mit dem Befehl Exit

Denken Sie daran, dass der Befehl Exit Ihre Skriptumgebung beendet und schließt. Alles, was nach dem Exit-Befehl geschrieben wird, wird also nicht ausgeführt. Wir nennen dies das Grenzfall-Szenario. Etwas nach dem Exit-Befehl zu schreiben ist möglich, wird aber nicht empfohlen, da andere Skriptumgebungen diese zusätzlichen Zeilen falsch lesen und einen Fehler verursachen können.

Beispielcode:

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 Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn