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) :
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 "^"
1 2
| REM %~
echo hey maitre ! |
1 2
| REM %^
echo hey maitre ! |
REM n'est pas flexible, on ne peut pas faire par exemple:
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,
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.
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:
1 2 3
| echo hello
:commentaire
echo autre commentaire |
il faut mettre "::" pour que ":commentaire" ne soit pas "vu" comme un label
1 2 3
| echo hello
::commentaire
echo autre commentaire |
quelques bugs avec l'utilisation des "::"
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"
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:
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
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
set "v=hello" commentaire
la commmande Goto
les labels
1 2 3 4
| goto:label
exit /b
:label et un commentaire
echo hello |
exemple:
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:
for /r %dossier en cours% %%n in (*.txt) do echo %%n
1 2
|
for /f "%(ceci est un commentaire)%delims=" %%a in ("hello") do echo %%a |
for /L %%a in (%( i=1;i<=30;i++ )% 1,1,30) do echo %%a
for /f "delims=" %( commentaire )%%%. in ("exemple de commentaire") do echo %( commentaire )%%%.
for /f "delims=" %%. in (%( commentaire )% "exemple de commentaire" %( commentaire )% ) do echo %%.
1 2 3 4
| echo test1: % commentaire 1 %
set var=exemple de commentaire % commentaire 2 %
echo %var% % commentaire 3 %
echo. % commentaire 4 % |
Partager