Salut,


Comme vous savez tous un script bien commenté à l'avantage de facilité la compréhension des syntaxes
utiliser, surtout si le code est d'une certaine complexité.


commande REM


En batch, la commande officiel est la commande REM ("francisé" en REMARQUE) :

Code :
1
2
3
echo test
REM commentaire
echo 1
quelques bugs avec la commande REM

problème avec le caractère tilde "~" et le caret "^"
Code :
1
2
REM %~
echo hey maitre !
Code :
1
2
REM %^
echo hey maitre !
REM n'est pas flexible, on ne peut pas faire par exemple:

Code :
echo bonjour maitre REM on salut son maitre !!
pour contourner ce problème on utilisera l'esperluette "&" comme on verra plus loin

REM peut causer des problèmes avec les signes de redirection

Les doubles 2 points:

les "::" sont une utilisation contourné des labels,

Code :
1
2
3
4
5
6
7
goto :ici

::ici
echo hello1
goto:eof
:ici
echo hello2
::ici ne sera pas traiter comme un label.

Code :
1
2
3
4
5
6
7
goto :ici

:ici
echo hello1
goto:eof
:ici
echo hello2
ici on a omis le ":" du "::ici", il est désormais considéré comme un label

ainsi un code du genre est à éviter:

Code :
1
2
3
echo hello
:commentaire
echo autre commentaire
il faut mettre "::" pour que ":commentaire" ne soit pas "vu" comme un label

Code :
1
2
3
echo hello
::commentaire
echo autre commentaire
quelques bugs avec l'utilisation des "::"

Code :
1
2
3
4
5
6
(
echo ligne1
::commentaire
::commentaire
echo ligne2
)
les commentaires en ligne "inline":

on utilise l'esperluette "&" pour concaténer les 2 parties "code+commentaire"

Code :
1
2
echo ceci est un commentaire &rem commentaire
echo ceci est un commentaire &:: commentaire
les blocs de commentaires:

1- Branchement GOTO:
On peut mettre nos commentaires dans un branchement GOTO:

Code :
1
2
3
4
5
6
7
8
9
10
11
GOTO:REM
==========================================

commentaire 1
commentaire 2
commentaire x

==========================================
:REM

suite du code
2- Redirection du flux StdErr:

on utilisera dans ce cas la redirection par 2>NUL

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo chaine 1

(
------------------------------------
 
      ici vous mettez tout ce que
      vous voulez...
      c'est un bloc de commentaires.

-------------------------------------
) 2>nul

echo chaine 2

cas particuliers:

les commandes qui n'acceptent pas de paramètres peuvent être succéder par des commentaires

exemple de commandes:

la commande pause

la commande cls (Clear the screen)

la commande Set avec l'utilisation des guillemets

Code :
set "v=hello" commentaire
la commmande Goto

les labels

Code :
1
2
3
4
goto:label
exit /b
:label et un commentaire
echo hello
exemple:
Code :
1
2
3
4
set "before=file.txt"  # renommer le fichier
set "after=_file.txt"  # file.txt en _file.txt 
ren %before% %after%



autre façon de commenter son code:

On va utiliser le signe "%" dans nos commentaires:
voici quelques exemples:


Code :
for /r %dossier en cours% %%n in (*.txt) do echo %%n
Code :
1
2
for /f "%(ceci est un commentaire)%delims=" %%a in ("hello") do echo %%a
Code :
for /L %%a in (%( i=1;i<=30;i++ )% 1,1,30) do echo %%a
Code :
for /f "delims=" %( commentaire )%%%. in  ("exemple de commentaire") do echo %( commentaire )%%%.

Code :
for /f "delims=" %%.  in (%( commentaire )%  "exemple de commentaire"  %( commentaire )% ) do echo %%.

Code :
1
2
3
4
echo test1: % commentaire 1 %
set var=exemple de commentaire % commentaire 2 %
echo %var% % commentaire 3 %
echo. % commentaire 4 %