Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Guide complet pour commenter en PowerShell

Guide complet pour commenter en PowerShell

Feb 11, 2025

Commenter efficacement dans PowerShell améliore la lisibilité des scripts, la collaboration et la maintenabilité à long terme. PowerShell prend en charge les commentaires sur une seule ligne (#) et les commentaires de bloc (<# … #>), ainsi que des techniques avancées telles que les notes en ligne, l'aide basée sur les commentaires et les régions pour l'organisation. Les meilleures pratiques incluent l'explication de la logique et de l'intention plutôt que de la syntaxe, la mise à jour des commentaires en même temps que les modifications du code et l'évitement de notes vagues, obsolètes ou excessives. Commenter de manière structurée rend les scripts plus clairs, plus sécurisés et plus faciles à déboguer.

Introduction

Si vous écrivez des scripts Windows PowerShell, il est important de comprendre comment utiliser efficacement les commentaires PowerShell. Cet article peut aider. Il explique les principales méthodes pour inclure des commentaires dans vos scripts et fournit des conseils sur le moment d'utiliser chaque méthode. Il explique également les cas d'utilisation populaires pour les commentaires et offre les meilleures pratiques à suivre et les erreurs courantes à éviter.

Comprendre les commentaires dans PowerShell

Les commentaires dans PowerShell ont une variété d'utilisations précieuses. Ils sont essentiels pour rendre les scripts plus faciles à comprendre et à maintenir. Utiliser des commentaires pour détailler le but, la logique ou la fonctionnalité d'un script ou d'une section spécifique du code est très utile pour quiconque a besoin d'utiliser, de modifier ou de dépanner le script. Les commentaires facilitent également la collaboration avec d'autres membres de l'équipe et réduisent le besoin d'explications verbales. Ils aident aussi ceux qui ont moins d'expertise en PowerShell à suivre le script et à améliorer leur niveau de compétence.

Les commentaires aident également les équipes de développement et de test à désactiver temporairement une ou plusieurs lignes de code. Les commentaires sont ignorés par l'interpréteur PowerShell, donc vous pouvez désactiver le code simplement en le transformant en commentaire. Puisque le code a été mis en commentaire plutôt que supprimé, il peut être facilement restauré plus tard. Des commentaires détaillés préviennent également la confusion lors des mises à jour et du dépannage en fournissant un contexte pour comprendre pourquoi certaines décisions ont été prises.

Types de commentaires dans PowerShell

Comment commenter dans PowerShell

Les deux types de base de commentaires dans PowerShell sont les commentaires sur une seule ligne et les commentaires sur plusieurs lignes (bloc).

Commentaires sur une seule ligne

Pour créer un commentaire d'une seule ligne dans PowerShell, utilisez simplement le symbole dièse (#) — tout texte suivant le symbole dièse sera ignoré par l'interpréteur PowerShell. Voici un exemple de commentaire d'une seule ligne :

      # The following script narrow down the users who having logged in for 90 days.

$InactiveUsers = Get-ADUser -Filter {LastLogonDate -lt (Get-Date).AddDays(-90)}
      
      # This is another example of a single-line comment.

Get-Process -Name Notepad
      

Quand utiliser les commentaires sur une seule ligne

Voici quelques-uns des principaux cas d'utilisation pour les commentaires sur une seule ligne :

  • Décrire le but d'une ligne ou d'un bloc de code qui le suit, comme une fonction :
      # Calculate the factorial of a number using recursion.

function Get-Factorial {

    param ([int]$number)

    if ($number -le 1) {

        return 1

    }

return $number * (Get-Factorial -number ($number - 1))

}
      
  • Documentez l'objectif d'une variable :
      # Store the list of server names to be checked for connectivity

$servers = @("Server1", "Server2", "Server3")
      
  • Expliquez pourquoi du code a été temporairement ajouté ou mis en commentaire :
      # Debugging: Output the current value of the counter

# Write-Output "Counter value is $counter"
      

Commentaires sur plusieurs lignes (bloc)

Un bloc de commentaires PowerShell vous permet d'ajouter des notes explicatives qui s'étendent sur plusieurs lignes. Les commentaires de bloc commencent par la balise <# et se terminent par la balise #> ; tout le texte entre ces balises est ignoré par l'interpréteur PowerShell.

Voici un exemple de commentaire multiligne dans PowerShell qui fournit des informations détaillées sur un script :

      <#

This script performs the following tasks:

1. Retrieves the list of all running processes on the system.

2. Filters the processes to include only those consuming more than 100 MB of memory.

3. Outputs the filtered list to the console for review.

Author: Admin

Date: 2025-01-07

#>

# Retrieve all running processes

$processes = Get-Process

# Filter processes using more than 100 MB of memory

$highMemoryProcesses = $processes | Where-Object { $_.WS -gt 100MB }

# Output the filtered processes

$highMemoryProcesses | Format-Table -AutoSize
      
Image

Quand utiliser les commentaires de bloc

Les commentaires de bloc PowerShell sont idéaux lorsque vous devez fournir des explications longues et détaillées. Bien que vous puissiez commencer chaque instruction avec le symbole dièse, l'utilisation d'un commentaire de bloc rend le script plus propre et plus lisible.

Voici quelques-uns des principaux usages des commentaires sur plusieurs lignes :

  • Fournissez des métadonnées concernant un script :
      <#

Script Name: Cleanup-TempFiles.ps1

Author: Jon Mill

Description: This script deletes temporary files older than 30 days

             from specified directories to free up disk space.

Last Modified: 2025-01-07

#>
      
  • Expliquez une logique complexe ou fournissez du contexte à propos d'une section de code :
      <#

The following block of code checks the connectivity status of multiple servers.

If a server is unreachable, it logs the error and skips to the next one,

ensuring the script doesn't terminate unexpectedly.

#>

foreach ($server in $servers) {

    if (-Not (Test-Connection -ComputerName $server -Count 1 -Quiet)) {

        Write-Output "$server is unreachable" >> error.log

        continue

    }

    # Proceed with the next task

}
      
  • Désactivez temporairement une grande section de code pendant le débogage ou les tests en utilisant des balises de commentaire :
      <#

# Commented out the block below for debugging purposes

Write-Output "Starting debugging session"

$debugVar = $true

#>
      

Techniques avancées de commentaire

Des techniques de commentaire avancées telles que les commentaires en ligne, l'aide basée sur les commentaires et les en-têtes de section rendent les scripts plus professionnels et conviviaux.

Commentaires en ligne

Vous pouvez inclure un commentaire sur la même ligne qu'un morceau de code en le commençant par le symbole dièse. Tout ce qui suit le symbole # est considéré comme un commentaire.

Les commentaires en ligne sont les mieux adaptés pour des explications brèves de la logique ou d'autres détails afin d'aider les autres à comprendre rapidement un point clé sans interrompre le flux du script. Voici un exemple simple :

      for ($i = 0; $i -lt 5; $i++) { # Loop from 0 to 4

Write-Output "Iteration $i" }
      

Aide basée sur les commentaires pour les scripts et fonctions

L'aide basée sur les commentaires offre une méthode structurée pour documenter les scripts à l'intérieur du code. En utilisant des balises de commentaire spéciales dans les commentaires sur plusieurs lignes, vous pouvez spécifier les informations à fournir sur le script en utilisant la cmdlet Get-Help. Par exemple, la description que vous fournissez à l'aide de la balise .SYNOPSIS sera affichée lorsqu'un utilisateur exécute Get-Help sur votre fonction ou script. Cette approche permet d'obtenir du code auto-documenté qui réduit le besoin d'une documentation séparée.

Les balises prédéfinies incluent les suivantes :

  • .SYNOPSIS — Utilisez cette balise pour fournir un résumé concis de ce que le script ou la fonction fait :
      .SYNOPSIS

Copies files from one directory to another.
      
  • .DESCRIPTION — Utilisez cette balise pour fournir une explication détaillée de la fonctionnalité du script et de toute considération importante pour son utilisation :
      .DESCRIPTION

This function copies files from a source directory to a destination directory.

It allows users to copy files recursively and optionally overwrite existing files.
      
  • .PARAMETER  Utilisez cette balise pour définir chaque paramètre accepté par le script, y compris son rôle, son type et toutes les règles spécifiques concernant son utilisation :
      .PARAMETER Source

The path of the source directory from which the files will be copied. The source must be a valid directory path.

.PARAMETER Destination

    The path to the destination directory where the files will be copied to.

    The destination must be a valid directory path.

.PARAMETER Overwrite

    A switch to determine whether existing files at the destination should be overwritten.

If not specified, existing files will not be overwritten.
      
  • .EXAMPLE — Utilisez cette balise pour fournir des exemples détaillés du script ou de la fonction afin d'aider les utilisateurs à comprendre comment l'appeler et les résultats attendus :
      .EXAMPLE

    Copy-Files -Source "C:\Data" -Destination "D:\Backup" -Overwrite

    Copies files from C:\Data to D:\Backup, overwriting existing files at the destination.
      

Exemple concret d'intégration de Get-Help

Le script suivant est conçu pour sauvegarder des fichiers. Les commentaires du script PowerShell au début utilisent les balises détaillées ci-dessus.

      <#

.SYNOPSIS

Backs up files from the source to the destination folder.

.DESCRIPTION

This script copies all files from the specified source folder to the destination folder.

.PARAMETER Source

Specifies the path to the source folder.

.PARAMETER Destination

Specifies the path to the destination folder.

.EXAMPLE

.\Backup-Script.ps1 -Source "C:\Data" -Destination "D:\Backup"

Copies all files from C:\Data to D:\Backup.

#>

param (

    [string]$Source,

    [string]$Destination

)

if (-Not (Test-Path -Path $Source)) {

    Write-Error "Source path does not exist."

    exit

}

if (-Not (Test-Path -Path $Destination)) {

    Write-Host "Destination path does not exist. Creating it..."

    New-Item -ItemType Directory -Path $Destination

}

Copy-Item -Path "$Source\*" -Destination $Destination -Recurse

Write-Host "Backup completed successfully."
      

La capture d'écran ci-dessous montre comment les balises permettent à un utilisateur de récupérer rapidement des informations d'utilisation avec la commande Get-Help :

Image

Bonnes pratiques pour commenter en PowerShell

Pour rendre le code plus lisible et plus facile à comprendre pour nous-mêmes et pour les autres, il est essentiel d'utiliser les commentaires de manière efficace. Voici les meilleures pratiques à suivre.

Ajoutez des commentaires là où c'est nécessaire sans encombrer le code

Il faut utiliser fréquemment des commentaires dans le code pour expliquer le but des fonctions, la logique derrière les algorithmes complexes, la signification des variables, ainsi que toute hypothèse ou limitation du code.

Toutefois, il est important de trouver un équilibre entre fournir un contexte utile et éviter l'encombrement inutile. Prenez en compte ces directives :

  • Utilisez des commentaires en ligne ou sur une seule ligne pour des notes brèves.
  • Utilisez des commentaires multilignes PowerShell pour des explications plus longues.
  • Évitez de fournir des commentaires pour des opérations simples ou évidentes.
  • Commentez sur le but, pas la syntaxe.
  • Utilisez des commentaires pour clarifier la logique ou l'intention, surtout pour le code complexe.
  • Utilisez des commentaires pour mettre en évidence les hypothèses, les exigences et les problèmes connus du script.
  • Suivez la mise en forme et le style pour maintenir les commentaires cohérents et ordonnés.
  • Ajoutez des descriptions détaillées pour les fonctions et scripts en utilisant l'aide basée sur les commentaires intégrée.

Voici un exemple de commentaires clairs et concis qui apportent de la valeur sans submerger le lecteur :

      # Get-Service returns all running services.

Get-Service

# Filter the results to include only services

# related to the World Wide Web.

Get-Service | Where-Object {$_.DisplayName -like "*WWW*"}

# Stop the selected WWW services.

Get-Service | Where-Object {$_.DisplayName -like "*WWW*"} | Stop-Service
      

Évitez l'abus et le sous-emploi des commentaires

Commenter chaque ligne de code peut rendre sa lecture et sa compréhension difficiles, surtout si le code en lui-même est déjà explicite. Voici un exemple d'abus de commentaires :

      # Assign the value 10 to the variable $number

$number = 10

# Add 5 to the variable $number

$number = $number + 5
      

En même temps, ne pas fournir suffisamment de commentaires peut rendre difficile la compréhension de la logique et de l'objectif du code, en particulier du code complexe. Par exemple, le code suivant est conçu pour activer tous les utilisateurs désactivés dans Active Directory, mais l'absence de commentaires rend difficile la compréhension de cela :

      $users = Get-ADUser -Filter * | Where-Object {$_.Enabled -eq $false}

$users | ForEach-Object {

    Set-ADUser -Identity $_.SamAccountName -Enabled $true

}
      

Utilisez des commentaires temporaires pour le débogage

Mettre en commentaire du code est une technique précieuse pour le débogage et la résolution de problèmes dans le code. Cela peut vous aider à isoler les problèmes et à comprendre le comportement d'exécution. Assurez-vous d'utiliser un commentaire pour expliquer pourquoi le code a été désactivé, comme illustré dans les exemples suivants :

      # Log the value of the Source variable for debugging

Write-Host "Debug: Source path is $Source"

# Temporarily disable file copying to test directory creation

# Copy-Item -Path "$Source\*" -Destination $Destination -Recurse

      

Utilisez plusieurs commentaires pour le code complexe

Pour expliquer une logique complexe, divisez le code en morceaux plus petits et fournissez un commentaire pour expliquer chaque morceau. Voici un exemple :

      # Calculate the factorial of a number

function Calculate-Factorial {

    param(

        [int]$Number

)

# Base case: Factorial of 0 is 1

    if ($Number -eq 0) {

        return 1

    }

# Recursive case: Factorial of N is N * Factorial(N-1)

    else {

        return $Number * (Calculate-Factorial ($Number - 1))

    }

}
      

Expliquez le pourquoi, pas seulement le quoi

Utiliser des commentaires pour expliquer le raisonnement sous-jacent à un script améliorera la maintenabilité du code en fournissant un contexte pour les futures modifications et les efforts de débogage.

      # Retry the operation up to 3 times to handle intermittent network failures

# This prevents the script from failing on occasional, recoverable issues

for ($i = 0; $i -lt 3; $i++) {

    try {

        # Attempt the operation

        Copy-Item -Path $Source -Destination $Destination

        break  # Exit the loop if the operation is successful

    }

    catch {

        if ($i -eq 2) { throw "Failed after 3 attempts" }

        Start-Sleep -Seconds 2  # Wait before retrying

    }

}
      

Formatez les commentaires pour améliorer la lisibilité

Une mise en forme efficace des commentaires améliore la lisibilité du code. Portez une attention particulière à l'indentation et à l'alignement, ainsi qu'à la position des commentaires, comme les placer de manière cohérente avant le code qu'ils décrivent. Ce code illustre comment un bon formatage rend les commentaires plus efficaces :

      # This function retrieves a list of all running processes.

function Get-RunningProcesses {

    # Get all running processes

    Get-Process |

        # Select only the process name and ID

        Select-Object ProcessName, ID

}
      

Cas d'utilisation spéciaux pour les commentaires PowerShell

Utilisation des commentaires pour le contrôle de version

Pour améliorer le contrôle de version, utilisez les commentaires PowerShell pour documenter les modifications apportées au script au fil du temps. Utilisez un format cohérent qui inclut des détails tels que la date, l'auteur et la raison du changement. Cet historique aide les développeurs à comprendre le contexte de chaque mise à jour.

      # Version 2.0 - 2025-01-10

# Added a new parameter for logging options and enhanced error handling.

# Updated the file backup logic to support incremental backups.

param (

    [string]$Source,

    [string]$Destination,

    [switch]$EnableLogging  # New parameter to enable logging

)

# Check if source exists

if (-Not (Test-Path -Path $Source)) {

    Write-Error "Source path does not exist."

    exit

}

# Log file creation if logging is enabled

if ($EnableLogging) {

    $logPath = "$Destination\backup_log.txt"

    "Backup started at $(Get-Date)" | Out-File -Append $logPath

}

# Backup files (incremental logic added in Version 2.0)

if (-Not (Test-Path -Path $Destination)) {

    New-Item -ItemType Directory -Path $Destination

}

Copy-Item -Path "$Source\*" -Destination $Destination -Recurse

# Log completion if logging is enabled

if ($EnableLogging) {

"Backup completed at $(Get-Date)" | Out-File -Append $logPath

}
      

Utiliser des régions pour organiser le code

Les balises <#region et <#endregion peuvent être utilisées pour identifier des sections logiques du code. Par exemple, vous pouvez marquer des parties d'un script qui effectuent des tâches telles que le traitement des données, la configuration ou la journalisation. Cette approche facilite la navigation et la compréhension des scripts complexes. Par exemple, les développeurs peuvent réduire les sections sur lesquelles ils ne travaillent pas actuellement pour diminuer l'encombrement visuel et améliorer la concentration.

Le script suivant est divisé en trois régions : Data Import Functions, Data Processing Functions, et Output Functions. Des blocs de commentaires de région sont utilisés pour décrire leur objectif.

      <#region Introduction

    This script retrieves a list of all running processes.

    It then filters the list to include only processes

    that match a specific criterion.

#>

# Get all running processes

$Processes = Get-Process

<#region Filtering

    Filter processes based on criteria

    (e.g., process name, CPU usage).

#>

$FilteredProcesses = $Processes | Where-Object {$_.ProcessName -eq "notepad"}

<#endregion Filtering

<#region Output

    Display the filtered processes.

#>

$FilteredProcesses | Format-List

<#endregion Output

<#endregion Introduction
      

Dépannage et débogage avec les commentaires PowerShell

Commenter pour isoler les bogues

Les commentaires peuvent être utilisés pour insérer des informations pour le débogage, telles que les valeurs des variables, les zones à problèmes potentiels ou les étapes de dépannage.

Désactivation de code avec des commentaires

Nous pouvons réduire la source des erreurs en mettant temporairement en commentaire des sections de code au lieu de les supprimer.

Documenter les erreurs avec des commentaires

Les commentaires sont un excellent moyen de documenter les problèmes connus ou les astuces de dépannage, en particulier pour le code qui est susceptible d'erreurs dans des conditions spécifiques. En ajoutant des commentaires avec des solutions potentielles ou des clarifications, vous aidez à la fois vous-même et les autres à résoudre rapidement les problèmes lorsqu'ils surviennent.

      # Get-Service returns an error on some server versions due to a known bug.

# Workaround: Use WMI to retrieve service status.

try {

    Get-Service -Name "SensorService"

} catch {

    Get-WmiObject Win32_Service -Filter "Name=''SensorService"

}
      
Image

Commentaires PowerShell pour la collaboration

Les commentaires améliorent la collaboration en rendant les scripts plus faciles à lire, à comprendre et à maintenir. Cela peut également accélérer l'intégration de nouveaux contributeurs.

Documentation des scripts pour l'utilisation en équipe

Utiliser des commentaires pour expliquer le but d'un script, la logique derrière chaque région du code et les pièges potentiels améliore le partage des connaissances entre les membres de l'équipe et réduit le débogage et le temps.

Par exemple, le commentaire de bloc en haut des scripts suivants décrit son objectif, les prérequis et les paramètres :

      <#

Script Name: Create-ADUserAccounts.ps1

Description: Automates the creation of Active Directory user accounts from a CSV file.

Prerequisites:

  - Active Directory module installed.

  - A valid CSV file with columns: FirstName, LastName, UserName, and Email.

Parameters:

  -CSVPath: Path to the input CSV file.

  -OU: Organizational Unit where accounts will be created.

Usage:

  .\Create-ADUserAccounts.ps1 -CSVPath "C:\Users.csv" -OU "OU=Users,DC=Domain,DC=Com"

#>
      

Partage de connaissances à travers les commentaires

Les commentaires aident tous les membres de l'équipe à comprendre la logique derrière un script, l'objectif de chaque région, pourquoi des approches spécifiques ont été choisies et les défis potentiels. Cette compréhension partagée facilite le dépannage, le débogage et les améliorations futures. Par exemple, si un script inclut une solution de contournement pour une limitation logicielle connue, les commentaires peuvent documenter le problème et justifier la solution afin que d'autres n'aient pas à dupliquer la recherche.

Voici un exemple de comment utiliser efficacement les commentaires pour partager des informations sur un script permettant de redémarrer un service s'il n'est pas en cours d'exécution :

      <#

Script Name: Ensure-ServiceRunning.ps1

Description: Checks if a specified service is running and restarts it if necessary.

Purpose:

  - Ensures critical services stay operational without manual intervention.

Decisions:

  - Used “Get-Service” for simplicity and compatibility.

  - Restart logic avoids redundancy by checking the current status first.

Usage:

  .\Ensure-ServiceRunning.ps1 -ServiceName "Spooler"

#>

param (

    [Parameter(Mandatory)]

    [string]$ServiceName  # Name of the service to check

)

# Check the current status of the service

$service = Get-Service -Name $ServiceName -ErrorAction Stop

if ($service.Status -ne "Running") {

    # Log and attempt to restart the service if not running

    Write-Host "Service '$ServiceName' is not running. Attempting to restart..."

    try {

        Restart-Service -Name $ServiceName -Force

        Write-Host "Service '$ServiceName' has been restarted successfully."

    } catch {

        Write-Error "Failed to restart the service '$ServiceName': $_"

    }

} else {

    Write-Host "Service '$ServiceName' is already running."

}
      

Exemples et scénarios de commentaires en PowerShell

Le script suivant surveille l'utilisation du disque et envoie une alerte par e-mail si l'espace libre est faible :

      <#

Script Name: Monitor-DiskUsage.ps1

Description: Checks each logical drive and sends an alert if free space is below the defined threshold.

Purpose:

  - Prevents system issues caused by insufficient storage.

Usage:

  .\Monitor-DiskUsage.ps1 -Threshold 10 -Email "admin@Netwrix.com"

#>

param (

    [Parameter(Mandatory)]

    [int]$Threshold,       # Minimum free space in GB to trigger an alert

    [Parameter(Mandatory)]

    [string]$Email         # Email address for the alert

)

# Retrieve disk information

$drives = Get-PSDrive -PSProvider FileSystem

foreach ($drive in $drives) {

    if ($drive.Free -gt 0) {

        $freeSpaceGB = [math]::Round($drive.Free / 1GB, 2)

        if ($freeSpaceGB -lt $Threshold) {

            Write-Warning "Drive $($drive.Name) has low space: $freeSpaceGB GB remaining."

            # Send an alert email (replace with real SMTP details)

            try {

                Send-MailMessage -From "alerts@netwrix.com" -To $Email -Subject "Low Disk Space Alert" `

                    -Body "Drive $($drive.Name) has only $freeSpaceGB GB remaining." `

                    -SmtpServer "smtp.domain.com"

            } catch {

                Write-Error "Failed to send alert email: $_"

            }

        }

    }

}
      

Le script ci-dessous nettoie les comptes d'utilisateurs dans Active Directory en désactivant les comptes inactifs et en les déplaçant vers une unité d'organisation spécifique :

      <#

Script Name: Cleanup-ADUsers.ps1

Description: Disables and moves inactive user accounts to a specified OU.

Purpose:

  - Helps maintain a clean and secure Active Directory environment.

Usage:

  .\Cleanup-ADUsers.ps1 -OU "OU=Inactive,DC=Netwrix,DC=Com" -DaysInactive 90

#>

param (

    [Parameter(Mandatory)]

    [string]$OU,           # Target OU for inactive users

    [Parameter(Mandatory)]

    [int]$DaysInactive     # Number of days since last logon

)

# Get the current date and calculate the inactivity threshold

$thresholdDate = (Get-Date).AddDays(-$DaysInactive)

# Find inactive user accounts

$inactiveUsers = Get-ADUser -Filter {LastLogonDate -lt $thresholdDate -and Enabled -eq $true}

foreach ($user in $inactiveUsers) {

    Write-Host "Disabling and moving user: $($user.SamAccountName)"

    # Disable the account

    Disable-ADAccount -Identity $user.SamAccountName

    # Move the account to the specified OU

    Move-ADObject -Identity $user.DistinguishedName -TargetPath $OU

}
      

Erreurs courantes dans les commentaires

Certains commentaires dans les scripts ajoutent plus de confusion que de clarté. Voici certaines des erreurs les plus fréquentes lors de l'utilisation des commentaires PowerShell et comment les éviter.

Commentaires vagues ou évidents

L'une des erreurs les plus courantes est de rédiger des commentaires trop vagues ou évidents, comme celui-ci :

      # Set the variable to 5

$number = 5
      

Concentrez-vous plutôt sur l'explication des raisons pour lesquelles une décision particulière a été prise ou pourquoi une opération complexe est effectuée, surtout si le code pourrait prêter à confusion ou s'il existe plusieurs approches possibles.

      # Assign the default retry count to handle intermittent failures

$retryCount = 5
      

Commentaires inexacts ou obsolètes

Parfois, les commentaires ne sont pas mis à jour lorsque le code change, ce qui conduit à des informations inexactes ou trompeuses. Par exemple, ici le chemin de sauvegarde a été modifié mais le commentaire n'a pas été mis à jour, ce qui peut induire le lecteur en erreur :

      # This script backs up data to a network drive

Backup-Data -Path "C:\Data"
      

Assurez-vous que les commentaires sont mis à jour à chaque modification du code. Révisez et remaniez régulièrement vos commentaires dans le cadre de la maintenance de votre code pour vous assurer qu'ils restent pertinents.

Abus de commentaires

Certains codes sont remplis de commentaires inutiles pour chaque ligne ou opération simple.

      # Initialize the variable

$number = 10

# Increment the variable by 1

$number++
      

Ajoutez des commentaires uniquement là où ils apportent de la valeur, typiquement pour une logique complexe, des solutions inhabituelles ou des décisions qui pourraient ne pas être immédiatement évidentes pour un autre développeur.

Ne pas utiliser de commentaires pour expliquer du code complexe

Si votre script contient une section de code complexe ou peu intuitive, assurez-vous de l'expliquer. Par exemple, sans commentaire, il n'est pas clair pourquoi ces calculs spécifiques sont effectués ou ce que représente 1.15 :

      $finalPrice = $basePrice * (1 - $discountPercentage) * 1.15
      

Pour du code complexe ou cryptique, fournissez le contexte expliquant pourquoi certaines formules, calculs ou algorithmes sont utilisés.

      # Calculate the final price including a 15% tax and applying the discount

$finalPrice = $basePrice * (1 - $discountPercentage) * 1.15
      

Mettre en commentaire le code au lieu de le supprimer

Les développeurs laissent parfois du code commenté qui provient de tests ou qui n'est autrement plus nécessaire. Cela encombre le script et peut causer de la confusion quant à savoir si le code devrait être réactivé.

      # $oldValue = Get-Item "C:\OldFile.txt"

# $oldValue.Delete()
      

Supprimez le code mort du script au lieu de le commenter. Si vous devez conserver du code pour référence future, documentez clairement cet objectif.

Conclusion

Les commentaires sont essentiels pour des scripts PowerShell professionnels et maintenables. Utilisés correctement, ils rendent le code plus facile à comprendre, à déboguer, à diagnostiquer, à maintenir et à améliorer. Commenter efficacement inclut la documentation de l'objectif du script, des décisions, des hypothèses et des problèmes potentiels. Les développeurs doivent veiller à ne pas abuser ni sous-utiliser les commentaires, et à adopter des normes de formatage pour garantir la lisibilité.

Commenter efficacement n'est pas une tâche ponctuelle mais un processus continu. Réviser et mettre à jour les commentaires chaque fois que le code est modifié aide à garantir que les commentaires reflètent avec précision l'état actuel du script, évitant ainsi la confusion et les erreurs.

FAQ

Les commentaires peuvent-ils affecter la performance des scripts PowerShell ?

Les commentaires ne sont pas traités par l'interpréteur PowerShell pendant l'exécution, donc ils n'ont pas d'impact sur la performance des scripts au moment de l'exécution. Néanmoins, il est recommandé de garder les commentaires concis et pertinents afin qu'ils apportent le plus de valeur.

À quelle fréquence dois-je mettre à jour les commentaires dans mes scripts ?

Les commentaires doivent être révisés et mis à jour chaque fois que des modifications importantes sont apportées au code, comme lors de l'ajout de nouvelles fonctionnalités, de la modification de fonctionnalités existantes ou de la correction de bogues. Les commentaires doivent toujours refléter l'état actuel du script.

Comment puis-je mettre en commentaire rapidement plusieurs lignes dans PowerShell ?

Vous pouvez rapidement mettre en commentaire plusieurs lignes dans PowerShell en utilisant la syntaxe de commentaire de bloc. Il suffit d'encadrer les lignes de code entre <# au début et #> à la fin.

Quelle est la différence entre les commentaires en ligne et les commentaires de bloc ?

Les commentaires en ligne commencent par le symbole # et apparaissent sur la même ligne que le code auquel ils se réfèrent. Ils sont les mieux adaptés pour des explications brèves.

Les commentaires de bloc peuvent s'étendre sur plusieurs lignes, encadrés par les délimiteurs <# et #>. Ils sont particulièrement utiles pour fournir des explications détaillées, documenter une logique complexe ou désactiver temporairement une section de code.

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Jonathan Blackwell

Responsable du développement logiciel

Depuis 2012, Jonathan Blackwell, ingénieur et innovateur, a fourni un leadership en ingénierie qui a placé Netwrix GroupID à l'avant-garde de la gestion de groupes et d'utilisateurs pour les environnements Active Directory et Azure AD. Son expérience en développement, marketing et ventes permet à Jonathan de comprendre pleinement le marché de l'Identity Management et la façon de penser des acheteurs.