Script de lot - Commentaires

C'est toujours une bonne pratique d'ajouter des commentaires ou de la documentation pour les scripts qui sont créés. Ceci est nécessaire pour la maintenance des scripts afin de comprendre ce que fait réellement le script.

Par exemple, considérez le morceau de code suivant qui n'a aucune forme de commentaires. Si une personne ordinaire qui n'a pas développé le script suivant essaie de comprendre le script, il lui faudrait beaucoup de temps pour comprendre ce que fait réellement le script.

ECHO OFF 
IF NOT "%OS%"=="Windows_NT" GOTO Syntax 
ECHO.%* | FIND "?" >NUL 
IF NOT ERRORLEVEL 1 GOTO Syntax 
IF NOT [%2]==[] GOTO Syntax 
SETLOCAL 
SET WSS= 
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A 
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F 
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND "<03>"') 
DO ECHO.%%a %%A 
ENDLOCAL 
GOTO:EOF 
ECHO Display logged on users and their workstations. 
ECHO Usage: ACTUSR [ filter ] 
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part 
of the computer name^(s^) to be displayed

Commentaires utilisant l'instruction Rem

Il existe deux façons de créer des commentaires dans Batch Script; l'un est via la commande Rem. Tout texte qui suit l'instruction Rem sera traité comme des commentaires et ne sera pas exécuté. Voici la syntaxe générale de cette déclaration.

Syntaxe

Rem Remarks

où «Remarques» est les commentaires qui doivent être ajoutés.

L'exemple suivant montre une manière simple Rem la commande peut être utilisée.

Exemple

@echo off 
Rem This program just displays Hello World 
set message=Hello World 
echo %message%

Production

La commande ci-dessus produit la sortie suivante. Vous remarquerez que la ligne avec l'instruction Rem ne sera pas exécutée.

Hello World

Commentaires utilisant l'instruction ::

L'autre façon de créer des commentaires dans Batch Script consiste à utiliser la commande ::. Tout texte qui suit l'instruction :: sera traité comme un commentaire et ne sera pas exécuté. Voici la syntaxe générale de cette déclaration.

Syntaxe

:: Remarks

où 'Remarks' est le commentaire qui doit être ajouté.

L'exemple suivant montre l'utilisation de la commande "::".

Exemple

@echo off 
:: This program just displays Hello World 
set message = Hello World 
echo %message%

Production

La commande ci-dessus produit la sortie suivante. Vous remarquerez que la ligne avec l'instruction :: ne sera pas exécutée.

Hello World

Note - Si vous avez trop de lignes de Rem, cela pourrait ralentir le code, car à la fin, chaque ligne de code dans le fichier batch doit encore être exécutée.

Regardons l'exemple du gros script que nous avons vu au début de cette rubrique et voyons à quoi il ressemble lorsque de la documentation y est ajoutée.

::===============================================================
:: The below example is used to find computer and logged on users
::
::===============================================================
ECHO OFF 
:: Windows version check 
IF NOT "%OS%"=="Windows_NT" GOTO Syntax 
ECHO.%* | FIND "?" >NUL 
:: Command line parameter check 
IF NOT ERRORLEVEL 1 GOTO Syntax
IF NOT [%2]==[] GOTO Syntax 
:: Keep variable local 
SETLOCAL 
:: Initialize variable 
SET WSS= 
:: Parse command line parameter 
IF NOT [%1]==[] FOR /F "tokens = 1 delims = \ " %%A IN ('ECHO.%~1') DO SET WSS = %%A 
:: Use NET VIEW and NBTSTAT to find computers and logged on users 
FOR /F "tokens = 1 delims = \ " %%a IN ('NET VIEW ^| FIND /I "\\%WSS%"') DO FOR /F 
"tokens = 1 delims = " %%A IN ('NBTSTAT -a %%a ^| FIND /I /V "%%a" ^| FIND 
"<03>"') DO ECHO.%%a %%A 
:: Done 
ENDLOCAL
GOTO:EOF 
:Syntax 
ECHO Display logged on users and their workstations. 
ECHO Usage: ACTUSR [ filter ] 
IF "%OS%"=="Windows_NT" ECHO Where: filter is the first part of the 
computer name^(s^) to be displayed

Vous pouvez maintenant voir que le code est devenu plus compréhensible pour les utilisateurs qui n'ont pas développé le code et qu'il est donc plus maintenable.