Mémo variables scripts bat
Mémo variables scripts bat

Texte de la première page
Mémo variables scripts .bat Windows
Manipulation des variables ___________________________________________________________________ 3
Déclaration variable ............................................................................................................................................ 3
Accès à une variable ............................................................................................................................................ 3
Test existence variable ........................................................................................................................................ 3
Variables numériques .......................................................................................................................................... 3
Opérations arithmétiques abrégées.................................................................................................................... 3
Initialisation / suppression variable .................................................................................................................... 3
Portée des variables ............................................................................................................................................ 3
Echange de variables Main ↔ Sub ..................................................................................................................... 4
Transmettre à un Sub une variable string avec espaces ..................................................................................... 4
Variable avec le caractère ‘&’ .............................................................................................................................. 4
Formatage heure (1:23 → 01:23) ........................................................................................................................ 5
Mise en majuscules (to upper) ............................................................................................................................ 5
Comparaisons des variables ___________________________________________________________________ 5
Vide ..................................................................................................................................................................... 5
Egalité .................................................................................................................................................................. 5
Différent .............................................................................................................................................................. 5
Toutes les comparaisons ..................................................................................................................................... 6
EQU equal to (=) ............................................................................................................................................... 6
NEQ not equal to (≠) ....................................................................................................................................... 6
LSS less than (<) .............................................................................................................................................. 6
GTR greater than (>) ........................................................................................................................................ 6
LEQ less than or equal to (< | =) ...................................................................................................................... 6
GEQ greater than or equal to (> | =) ................................................................................................................ 6
Tests des variables __________________________________________________________________________ 7
Test existence variable ........................................................................................................................................ 7
Test existence drive ............................................................................................................................................. 7
Test existence fichier ........................................................................................................................................... 7
Test existence directory ...................................................................................................................................... 7
Test isnum ........................................................................................................................................................... 7
Test chaîne vide (variable exist) .......................................................................................................................... 7
Test ERRORLEVEL ................................................................................................................................................ 7
Traitement des strings _______________________________________________________________________ 8
Concaténation ..................................................................................................................................................... 8
Remplacement de caractère ............................................................................................................................... 8
Extraction de caractères via marqueur ............................................................................................................... 8
Extraction de caractères via index....................................................................................................................... 8
Suppression de caractères en début variable ..................................................................................................... 8
Suppression de caractères en fin variable........................................................................................................... 9
Suppression des guillemets ................................................................................................................................. 9
Longueur de variable (longueur variable) (strlen)............................................................................................... 9
Longueur de variable (longueur fixe attendue)................................................................................................... 9
Padding .............................................................................................................................................................. 11
Formatage des milliers (1,000) .......................................................................................................................... 11
Opérateurs spéciaux ________________________________________________________________________ 11
Script .bat en cours d’exécution [~nx0]............................................................................................................. 11
Path d’un fichier [~dp0]..................................................................................................................................... 12
& Enchaînement inconditionnel ........................................................................................................................ 12
&& Enchaînement conditionnel SI SUCCES ....................................................................................................... 12
|| Enchaînement conditionnel SI ECHEC .......................................................................................................... 12
| Envoie la sortie d’une commande vers une autre (pipe) ............................................................................... 12
Affichage variable avec caractères spéciaux ..................................................................................................... 12
Autres ___________________________________________________________________________________ 12
2026 07 07
Mémo variables scripts .bat Windows
Redirection silencieuse output commande ....................................................................................................... 13
Délai de x secondes ........................................................................................................................................... 13
’Q’ to quit .......................................................................................................................................................... 13
Boucle FOR ........................................................................................................................................................ 13
Structure AND ................................................................................................................................................... 13
Nombre de lignes dans fichier ........................................................................................................................... 13
Diviser une ligne longue en plusieurs lignes ..................................................................................................... 14
2/14
Mémo variables scripts .bat Windows
Manipulation des variables
Déclaration variable
SET "nom=valeur"
Accès à une variable
ECHO %myVar%
Test existence variable
IF DEFINED Debug (
ECHO Debug is ON
) ELSE (
ECHO Debug is OFF
)
Variables numériques
SET /A total=5+3
/A permet les calculs.
PAS DE GUILLEMETS.
Opérations arithmétiques abrégées
Opération
Incrémentation
Addition
Soustraction
Multiplication
Division
Modulo (reste)
Forme abrégée
Forme complète
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
/A
/A
/A
/A
/A
/A
"var+=1"
"var+=5"
"var-=1"
"var*=2"
"var/=2"
"var%%=2"
/A
/A
/A
/A
/A
/A
"var
"var
"var
"var
"var
"var
=
=
=
=
=
=
var
var
var
var
var
var
+ 1"
+ 5"
- 1"
* 2"
/ 2"
%% 2"
Initialisation / suppression variable
SET "MyVar="
Portée des variables
Pour limiter la portée d’une variable au script en cours d’exécution, mettre SETLOCAL en début de script.
3/14
Mémo variables scripts .bat Windows
Echange de variables Main ↔ Sub
::MyScript.bat
SET "p1=123"
SET "p2=456"
CALL :mySub %p1% %p2% rec1 rec2
ECHO %rec1%
ECHO %rec2%
:mySub
SET "var1=%~1"
SET "var2=%~2"
SET "%3=toto"
SET "%4=titi"
EXIT /B
MyScript.bat
CALL
►
:mySub
envoie p1 p2
via %1 %2
reçoit rec1 rec2 via %3 %4
→
←
reçoit var1 var2
via %1 %2
envoie "toto" "titi" via %3 %4
Transmettre à un Sub une variable string avec espaces
call :MySub "My tailor is rich"
:MySub
echo %~1
%~1 supprime les guillemets.
Variable avec le caractère ‘&’
SETLOCAL EnableDelayedExpansion en début de script
et ECHO !MyVar!
4/14
Mémo variables scripts .bat Windows
Formatage heure (1:23 → 01:23)
SET "hour=%time:~0,2%"
IF %hour% LSS 10 SET "hour=0%time:~1,1%"
SET "LogFile=%USERPROFILE%\Downloads\%hour%.%time:~3,2% FAST COPY.log"
ou
IF "%time:~0,1%"==" " (
SET "hour=0%time:~1,1%"
) ELSE (
SET "hour=%time:~0,2%"
)
Mise en majuscules (to upper)
FOR %%I IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
CALL SET "drive=%%drive:%%I=%%I%%"
)
Comparaisons des variables
Vide
IF "%input%"==""
Egalité
IF "%var%"=="valeur" ECHO OK
TOUJOURS METTRE LES DEUX CÔTÉS ENTRE GUILLEMETS.
équivaut à:
IF %var% EQU 0 ECHO OK
Différent
IF NOT "%var%"=="valeur" ECHO OK
équivaut à:
IF %var% NEQ 0 ECHO OK
5/14
Mémo variables scripts .bat Windows
Toutes les comparaisons
EQU
NEQ
LSS
LEQ
GTR
GEQ
equal to (=)
not equal to (≠)
less than (<)
less than or equal to (< | =)
greater than (>)
greater than or equal to (> | =)
IF %input% xxx 0 ECHO OK
PAS GUILLEMETS POUR LES COMPARAISONS À 3 LETTRES.
EQU equal to (=)
équivaut à:
IF "%var%"=="valeur" ECHO OK
NEQ not equal to (≠)
équivaut à:
IF NOT "%var%"=="valeur" ECHO OK
LSS less than (<)
équivaut à:
IF NOT %var% GEQ valeur ECHO OK
GTR greater than (>)
équivaut à:
IF NOT %var% LEQ valeur ECHO OK
LEQ less than or equal to (< | =)
équivaut à:
IF NOT %var% GTR valeur ECHO OK
GEQ greater than or equal to (> | =)
équivaut à:
IF NOT %var% LSS valeur ECHO OK
6/14
Mémo variables scripts .bat Windows
Tests des variables
Test existence variable
IF NOT DEFINED myVar ECHO %myVar% not defined
Test existence drive
SET "destination_drive=E:"
IF NOT EXIST %destination_drive%\ ECHO Drive not found
Test existence fichier
IF EXIST "monfichier.txt" ECHO Fichier présent
Test existence directory
IF NOT EXIST "C:\Users\myuser\logs\" (
mkdir "C:\Users\myuser\logs\"
)
Test isnum
FOR /f "delims=0123456789" %%A IN ("%input%") DO (
ECHO input IS NOT numeric
EXIT /B 1
)
ECHO input is numeric
Les autres tests du type opération arithmétique ou FINDSTR ne sont pas fiables.
Test chaîne vide (variable exist)
IF NOT DEFINED myVar ECHO Variable vide
Test ERRORLEVEL
IF ERRORLEVEL 1
test erreur
IF NOT ERRORLEVEL 1
test PAS erreur
Reset ERRORLEVEL : ver >NUL
Remarque : ERRORLEVEL 0 ne fonctionne pas.
7/14
Mémo variables scripts .bat Windows
Traitement des strings
Concaténation
SET "message=Il y a %total% fichiers."
Remplacement de caractère
SET "chaine=2025-10-19"
SET "chaine=%chaine:-=_%"
Remplace - par _.
Extraction de caractères via marqueur
Avant : :
SET "var=987:765"
FOR /f "tokens=1 delims=:" %%A IN ("%var%") DO SET "before=%%A"
ECHO %before%
Après : :
SET "var=987:765"
FOR /f "tokens=2 delims=:" %%A IN ("%var%") DO SET "after=%%A"
ECHO %after%
Extraction de caractères via index
SET "tmp=%input:~0,1%"
Extrait le 1er caractère (0 1er caractère, 1 1 caractère).
Suppression de caractères en début variable
:: Supprimer les 5 premiers caractères
SET "resultat=%maVariable:~5%"
8/14
Mémo variables scripts .bat Windows
Suppression de caractères en fin variable
SET "maVariable=Fichier_Ancien_2024"
:: Supprimer les 5 derniers caractères (le "_2024")
SET "resultat=%maVariable:~0,-5%"
Suppression des guillemets
ECHO myVar %myVar%
myVar "My tailor is rich."
:: removing quotation marks around the variables
SET "myVar=%~myVar"
ECHO myVar %myVar%
myVar My tailor is rich.
Longueur de variable (longueur variable) (strlen)
SETLOCAL EnableDelayedExpansion
SET "myVar=Hello World"
SET /A length=0
SET "tempVar=%myVar%"
:loop
IF DEFINED tempVar (
SET "tempVar=%tempVar:~1%"
SET /A length+=1
GOTO loop
)
ECHO The length is: %length%
Longueur de variable (longueur fixe attendue)
IF "%ShadowCopyID:~37,1%"=="" GOTO error
IF NOT "%ShadowCopyID:~38,1%"=="" GOTO error
Longueur recherchée : 38.
1) Test si caractère 38 n’est pas vide.
2) Test si caractère 39 est vide.
9/14
Mémo variables scripts .bat Windows
Passage de variable-chaine avec des espaces
Script 1
SET "myVariable=My taylor is rich"
call script2.bat "%myVariable%"
Script 2
SET "received=%~1"
ECHO Message received: %received%
Recherche string dans output commande
MyDosCommand | FINDSTR /I "my string" >NUL
::IF NOT ERRORLEVEL 1 ECHO Found
IF ERRORLEVEL 1 (
ECHO Not found
) ELSE (
ECHO Found
)
Extraire une sous-chaîne d'une variable
Exemples :
SET a=abcdefgh
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
%a:~0,1%
%a:~1,1%
%a:~0,2%
%a:~1,2%
%a:~1%
%a:~-1%
%a:~-2%
%a:~0,-2%
%a:~0,-1%
%a:~1,-1%
de l’index 0, longueur 1
de l’index 1, longueur 1
de l’index 0, longueur 2
de l’index 1, longueur 2
de l’index 1 jusqu'à la fin
de l’index -1 (dernier caractère) jusqu'à la fin
de l’index -2 (avant-dernier) jusqu'à la fin
de l’index 0 à l’index -2, excl.
de l’index 0 à l’index -1, excl.
de l’index 1 à l’index -1, excl.
→a
→b
→ab
→bc
→bcdefgh
→h
→gh
→abcdef
→abcdefg
→bcdefg
Test de l'inclusion d'une sous-chaîne :
IF NOT "%a:bc=%"=="%a%" ECHO yes
Si variable a contient bc, on affiche yes.
Test « commence par » :
IF %a:~0,1%==a ECHO yes
IF %a:~0,2%==ab ECHO yes
si variable a commence par a affiche yes.
si variable a commence par ab affiche yes.
10/14
Mémo variables scripts .bat Windows
Remplacement de chaîne :
SET a=abcd & ECHO %a:c=%
SET a=abcd & ECHO %a:c=e%
SET a=abcd & ECHO %a:*c=%
remplace c avec rien
remplace c avec e
remplacer tout jusqu'à c avec rien
(*) ne fonctionne qu'au début de la chaîne recherchée.
→ abd
→ abed
→d
Padding
Remplir une chaine à une longueur fixe.
SET "item=%1"
::del quotes
SET "item=%item:"=%"
SET "spaces=
SET "temp=%item%%spaces%"
SET "item=%temp:~0,40%"
"
Formatage des milliers (1,000)
input : 1234
IF %input% GEQ 1000 (
SET "SizeString=!input:~0,-3!,!input:~-3! MB"
) ELSE (
SET "SizeString=%input% MB"
)
output : 1,234MB
Opérateurs spéciaux
Script .bat en cours d’exécution [~nx0]
ECHO This script is %~nx0
PAUSE
This script is MyScript.bat
Press any key to continue . . .
11/14
Mémo variables scripts .bat Windows
Path d’un fichier [~dp0]
SET "ScriptsHome=%USERPROFILE%\.scripts"
SET "LogMaker=%ScriptsHome%\LogFile.bat"
:: equivalent à :
SET "LogMaker=%~dp0LogFile.bat"
& Enchaînement inconditionnel
echo toto & pause
pause s’exécute toujours, même si echo toto échoue.
&& Enchaînement conditionnel SI SUCCES
echo toto && pause
pause s’exécute seulement si echo toto renvoie errorlevel 0.
Si le ping réussit, ALORS on affiche le message :
ping -n 1 8.8.8.8 >nul && ECHO Connecte a Internet.
|| Enchaînement conditionnel SI ECHEC
echo toto || pause
pause s’exécute seulement si echo toto échoue.
Si le dossier n'existe pas, ALORS on le crée :
dir MonDossier >NUL 2>&1 || mkdir MonDossier
IF /I "%input%"=="U" (SET "input=USBDrive") || (SET "input=LocalDrive")
équivaut à :
IF /I "%input%"=="U" (SET "input=USBDrive") ELSE (SET "input=LocalDrive")
| Envoie la sortie d’une commande vers une autre (pipe)
dir | find "txt"
dir liste les fichiers, find ne reçoit que la sortie de dir,
et filtre les lignes contenant txt.
Affichage variable avec caractères spéciaux
SETLOCAL EnableDelayedExpansion
SET "InstanceID=USB\ROOT_HUB30\4&f2d4087&0&0"
ECHO Instance ID: !InstanceID!
Autres
12/14
Mémo variables scripts .bat Windows
Redirection silencieuse output commande
NET SESSION >NUL 2>&1
Délai de x secondes
10 s
ping 127.0.0.1 -n 11 > NUL
5s
powershell -command "Start-Sleep -s 5"
1s
choice /t 1 /d y /n > NUL
3s
timeout /t 3 /nobreak > NUL
’Q’ to quit
choice /C Q9 /T 5 /D 9 /N > NUL
IF %errorlevel%==1 EXIT /B
Boucle FOR
FOR %%F IN (*.txt) DO ECHO %%F
- En script : %% .
- En ligne de commande : % .
Structure AND
IF "%choix%"=="A" IF "%mode%"=="admin" (
ECHO Acces autorise en mode admin.
)
Nombre de lignes dans fichier
FOR /f %%a IN ('find /c /v "" ^< "%fichier%"') DO set
13/14
Mémo variables scripts .bat Windows
Diviser une ligne longue en plusieurs lignes
ENDLOCAL ^
& SET "%3=%okInt%.%okDec%" ^
& SET "%4=%nokInt%.%nokDec%" ^
& SET "%5=%okInt%" ^
& SET "%6=%nokInt%"
14/14
Manipulation des variables ___________________________________________________________________ 3
Déclaration variable ............................................................................................................................................ 3
Accès à une variable ............................................................................................................................................ 3
Test existence variable ........................................................................................................................................ 3
Variables numériques .......................................................................................................................................... 3
Opérations arithmétiques abrégées.................................................................................................................... 3
Initialisation / suppression variable .................................................................................................................... 3
Portée des variables ............................................................................................................................................ 3
Echange de variables Main ↔ Sub ..................................................................................................................... 4
Transmettre à un Sub une variable string avec espaces ..................................................................................... 4
Variable avec le caractère ‘&’ .............................................................................................................................. 4
Formatage heure (1:23 → 01:23) ........................................................................................................................ 5
Mise en majuscules (to upper) ............................................................................................................................ 5
Comparaisons des variables ___________________________________________________________________ 5
Vide ..................................................................................................................................................................... 5
Egalité .................................................................................................................................................................. 5
Différent .............................................................................................................................................................. 5
Toutes les comparaisons ..................................................................................................................................... 6
EQU equal to (=) ............................................................................................................................................... 6
NEQ not equal to (≠) ....................................................................................................................................... 6
LSS less than (<) .............................................................................................................................................. 6
GTR greater than (>) ........................................................................................................................................ 6
LEQ less than or equal to (< | =) ...................................................................................................................... 6
GEQ greater than or equal to (> | =) ................................................................................................................ 6
Tests des variables __________________________________________________________________________ 7
Test existence variable ........................................................................................................................................ 7
Test existence drive ............................................................................................................................................. 7
Test existence fichier ........................................................................................................................................... 7
Test existence directory ...................................................................................................................................... 7
Test isnum ........................................................................................................................................................... 7
Test chaîne vide (variable exist) .......................................................................................................................... 7
Test ERRORLEVEL ................................................................................................................................................ 7
Traitement des strings _______________________________________________________________________ 8
Concaténation ..................................................................................................................................................... 8
Remplacement de caractère ............................................................................................................................... 8
Extraction de caractères via marqueur ............................................................................................................... 8
Extraction de caractères via index....................................................................................................................... 8
Suppression de caractères en début variable ..................................................................................................... 8
Suppression de caractères en fin variable........................................................................................................... 9
Suppression des guillemets ................................................................................................................................. 9
Longueur de variable (longueur variable) (strlen)............................................................................................... 9
Longueur de variable (longueur fixe attendue)................................................................................................... 9
Padding .............................................................................................................................................................. 11
Formatage des milliers (1,000) .......................................................................................................................... 11
Opérateurs spéciaux ________________________________________________________________________ 11
Script .bat en cours d’exécution [~nx0]............................................................................................................. 11
Path d’un fichier [~dp0]..................................................................................................................................... 12
& Enchaînement inconditionnel ........................................................................................................................ 12
&& Enchaînement conditionnel SI SUCCES ....................................................................................................... 12
|| Enchaînement conditionnel SI ECHEC .......................................................................................................... 12
| Envoie la sortie d’une commande vers une autre (pipe) ............................................................................... 12
Affichage variable avec caractères spéciaux ..................................................................................................... 12
Autres ___________________________________________________________________________________ 12
2026 07 07
Mémo variables scripts .bat Windows
Redirection silencieuse output commande ....................................................................................................... 13
Délai de x secondes ........................................................................................................................................... 13
’Q’ to quit .......................................................................................................................................................... 13
Boucle FOR ........................................................................................................................................................ 13
Structure AND ................................................................................................................................................... 13
Nombre de lignes dans fichier ........................................................................................................................... 13
Diviser une ligne longue en plusieurs lignes ..................................................................................................... 14
2/14
Mémo variables scripts .bat Windows
Manipulation des variables
Déclaration variable
SET "nom=valeur"
Accès à une variable
ECHO %myVar%
Test existence variable
IF DEFINED Debug (
ECHO Debug is ON
) ELSE (
ECHO Debug is OFF
)
Variables numériques
SET /A total=5+3
/A permet les calculs.
PAS DE GUILLEMETS.
Opérations arithmétiques abrégées
Opération
Incrémentation
Addition
Soustraction
Multiplication
Division
Modulo (reste)
Forme abrégée
Forme complète
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
SET
/A
/A
/A
/A
/A
/A
"var+=1"
"var+=5"
"var-=1"
"var*=2"
"var/=2"
"var%%=2"
/A
/A
/A
/A
/A
/A
"var
"var
"var
"var
"var
"var
=
=
=
=
=
=
var
var
var
var
var
var
+ 1"
+ 5"
- 1"
* 2"
/ 2"
%% 2"
Initialisation / suppression variable
SET "MyVar="
Portée des variables
Pour limiter la portée d’une variable au script en cours d’exécution, mettre SETLOCAL en début de script.
3/14
Mémo variables scripts .bat Windows
Echange de variables Main ↔ Sub
::MyScript.bat
SET "p1=123"
SET "p2=456"
CALL :mySub %p1% %p2% rec1 rec2
ECHO %rec1%
ECHO %rec2%
:mySub
SET "var1=%~1"
SET "var2=%~2"
SET "%3=toto"
SET "%4=titi"
EXIT /B
MyScript.bat
CALL
►
:mySub
envoie p1 p2
via %1 %2
reçoit rec1 rec2 via %3 %4
→
←
reçoit var1 var2
via %1 %2
envoie "toto" "titi" via %3 %4
Transmettre à un Sub une variable string avec espaces
call :MySub "My tailor is rich"
:MySub
echo %~1
%~1 supprime les guillemets.
Variable avec le caractère ‘&’
SETLOCAL EnableDelayedExpansion en début de script
et ECHO !MyVar!
4/14
Mémo variables scripts .bat Windows
Formatage heure (1:23 → 01:23)
SET "hour=%time:~0,2%"
IF %hour% LSS 10 SET "hour=0%time:~1,1%"
SET "LogFile=%USERPROFILE%\Downloads\%hour%.%time:~3,2% FAST COPY.log"
ou
IF "%time:~0,1%"==" " (
SET "hour=0%time:~1,1%"
) ELSE (
SET "hour=%time:~0,2%"
)
Mise en majuscules (to upper)
FOR %%I IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
CALL SET "drive=%%drive:%%I=%%I%%"
)
Comparaisons des variables
Vide
IF "%input%"==""
Egalité
IF "%var%"=="valeur" ECHO OK
TOUJOURS METTRE LES DEUX CÔTÉS ENTRE GUILLEMETS.
équivaut à:
IF %var% EQU 0 ECHO OK
Différent
IF NOT "%var%"=="valeur" ECHO OK
équivaut à:
IF %var% NEQ 0 ECHO OK
5/14
Mémo variables scripts .bat Windows
Toutes les comparaisons
EQU
NEQ
LSS
LEQ
GTR
GEQ
equal to (=)
not equal to (≠)
less than (<)
less than or equal to (< | =)
greater than (>)
greater than or equal to (> | =)
IF %input% xxx 0 ECHO OK
PAS GUILLEMETS POUR LES COMPARAISONS À 3 LETTRES.
EQU equal to (=)
équivaut à:
IF "%var%"=="valeur" ECHO OK
NEQ not equal to (≠)
équivaut à:
IF NOT "%var%"=="valeur" ECHO OK
LSS less than (<)
équivaut à:
IF NOT %var% GEQ valeur ECHO OK
GTR greater than (>)
équivaut à:
IF NOT %var% LEQ valeur ECHO OK
LEQ less than or equal to (< | =)
équivaut à:
IF NOT %var% GTR valeur ECHO OK
GEQ greater than or equal to (> | =)
équivaut à:
IF NOT %var% LSS valeur ECHO OK
6/14
Mémo variables scripts .bat Windows
Tests des variables
Test existence variable
IF NOT DEFINED myVar ECHO %myVar% not defined
Test existence drive
SET "destination_drive=E:"
IF NOT EXIST %destination_drive%\ ECHO Drive not found
Test existence fichier
IF EXIST "monfichier.txt" ECHO Fichier présent
Test existence directory
IF NOT EXIST "C:\Users\myuser\logs\" (
mkdir "C:\Users\myuser\logs\"
)
Test isnum
FOR /f "delims=0123456789" %%A IN ("%input%") DO (
ECHO input IS NOT numeric
EXIT /B 1
)
ECHO input is numeric
Les autres tests du type opération arithmétique ou FINDSTR ne sont pas fiables.
Test chaîne vide (variable exist)
IF NOT DEFINED myVar ECHO Variable vide
Test ERRORLEVEL
IF ERRORLEVEL 1
test erreur
IF NOT ERRORLEVEL 1
test PAS erreur
Reset ERRORLEVEL : ver >NUL
Remarque : ERRORLEVEL 0 ne fonctionne pas.
7/14
Mémo variables scripts .bat Windows
Traitement des strings
Concaténation
SET "message=Il y a %total% fichiers."
Remplacement de caractère
SET "chaine=2025-10-19"
SET "chaine=%chaine:-=_%"
Remplace - par _.
Extraction de caractères via marqueur
Avant : :
SET "var=987:765"
FOR /f "tokens=1 delims=:" %%A IN ("%var%") DO SET "before=%%A"
ECHO %before%
Après : :
SET "var=987:765"
FOR /f "tokens=2 delims=:" %%A IN ("%var%") DO SET "after=%%A"
ECHO %after%
Extraction de caractères via index
SET "tmp=%input:~0,1%"
Extrait le 1er caractère (0 1er caractère, 1 1 caractère).
Suppression de caractères en début variable
:: Supprimer les 5 premiers caractères
SET "resultat=%maVariable:~5%"
8/14
Mémo variables scripts .bat Windows
Suppression de caractères en fin variable
SET "maVariable=Fichier_Ancien_2024"
:: Supprimer les 5 derniers caractères (le "_2024")
SET "resultat=%maVariable:~0,-5%"
Suppression des guillemets
ECHO myVar %myVar%
myVar "My tailor is rich."
:: removing quotation marks around the variables
SET "myVar=%~myVar"
ECHO myVar %myVar%
myVar My tailor is rich.
Longueur de variable (longueur variable) (strlen)
SETLOCAL EnableDelayedExpansion
SET "myVar=Hello World"
SET /A length=0
SET "tempVar=%myVar%"
:loop
IF DEFINED tempVar (
SET "tempVar=%tempVar:~1%"
SET /A length+=1
GOTO loop
)
ECHO The length is: %length%
Longueur de variable (longueur fixe attendue)
IF "%ShadowCopyID:~37,1%"=="" GOTO error
IF NOT "%ShadowCopyID:~38,1%"=="" GOTO error
Longueur recherchée : 38.
1) Test si caractère 38 n’est pas vide.
2) Test si caractère 39 est vide.
9/14
Mémo variables scripts .bat Windows
Passage de variable-chaine avec des espaces
Script 1
SET "myVariable=My taylor is rich"
call script2.bat "%myVariable%"
Script 2
SET "received=%~1"
ECHO Message received: %received%
Recherche string dans output commande
MyDosCommand | FINDSTR /I "my string" >NUL
::IF NOT ERRORLEVEL 1 ECHO Found
IF ERRORLEVEL 1 (
ECHO Not found
) ELSE (
ECHO Found
)
Extraire une sous-chaîne d'une variable
Exemples :
SET a=abcdefgh
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
ECHO
%a:~0,1%
%a:~1,1%
%a:~0,2%
%a:~1,2%
%a:~1%
%a:~-1%
%a:~-2%
%a:~0,-2%
%a:~0,-1%
%a:~1,-1%
de l’index 0, longueur 1
de l’index 1, longueur 1
de l’index 0, longueur 2
de l’index 1, longueur 2
de l’index 1 jusqu'à la fin
de l’index -1 (dernier caractère) jusqu'à la fin
de l’index -2 (avant-dernier) jusqu'à la fin
de l’index 0 à l’index -2, excl.
de l’index 0 à l’index -1, excl.
de l’index 1 à l’index -1, excl.
→a
→b
→ab
→bc
→bcdefgh
→h
→gh
→abcdef
→abcdefg
→bcdefg
Test de l'inclusion d'une sous-chaîne :
IF NOT "%a:bc=%"=="%a%" ECHO yes
Si variable a contient bc, on affiche yes.
Test « commence par » :
IF %a:~0,1%==a ECHO yes
IF %a:~0,2%==ab ECHO yes
si variable a commence par a affiche yes.
si variable a commence par ab affiche yes.
10/14
Mémo variables scripts .bat Windows
Remplacement de chaîne :
SET a=abcd & ECHO %a:c=%
SET a=abcd & ECHO %a:c=e%
SET a=abcd & ECHO %a:*c=%
remplace c avec rien
remplace c avec e
remplacer tout jusqu'à c avec rien
(*) ne fonctionne qu'au début de la chaîne recherchée.
→ abd
→ abed
→d
Padding
Remplir une chaine à une longueur fixe.
SET "item=%1"
::del quotes
SET "item=%item:"=%"
SET "spaces=
SET "temp=%item%%spaces%"
SET "item=%temp:~0,40%"
"
Formatage des milliers (1,000)
input : 1234
IF %input% GEQ 1000 (
SET "SizeString=!input:~0,-3!,!input:~-3! MB"
) ELSE (
SET "SizeString=%input% MB"
)
output : 1,234MB
Opérateurs spéciaux
Script .bat en cours d’exécution [~nx0]
ECHO This script is %~nx0
PAUSE
This script is MyScript.bat
Press any key to continue . . .
11/14
Mémo variables scripts .bat Windows
Path d’un fichier [~dp0]
SET "ScriptsHome=%USERPROFILE%\.scripts"
SET "LogMaker=%ScriptsHome%\LogFile.bat"
:: equivalent à :
SET "LogMaker=%~dp0LogFile.bat"
& Enchaînement inconditionnel
echo toto & pause
pause s’exécute toujours, même si echo toto échoue.
&& Enchaînement conditionnel SI SUCCES
echo toto && pause
pause s’exécute seulement si echo toto renvoie errorlevel 0.
Si le ping réussit, ALORS on affiche le message :
ping -n 1 8.8.8.8 >nul && ECHO Connecte a Internet.
|| Enchaînement conditionnel SI ECHEC
echo toto || pause
pause s’exécute seulement si echo toto échoue.
Si le dossier n'existe pas, ALORS on le crée :
dir MonDossier >NUL 2>&1 || mkdir MonDossier
IF /I "%input%"=="U" (SET "input=USBDrive") || (SET "input=LocalDrive")
équivaut à :
IF /I "%input%"=="U" (SET "input=USBDrive") ELSE (SET "input=LocalDrive")
| Envoie la sortie d’une commande vers une autre (pipe)
dir | find "txt"
dir liste les fichiers, find ne reçoit que la sortie de dir,
et filtre les lignes contenant txt.
Affichage variable avec caractères spéciaux
SETLOCAL EnableDelayedExpansion
SET "InstanceID=USB\ROOT_HUB30\4&f2d4087&0&0"
ECHO Instance ID: !InstanceID!
Autres
12/14
Mémo variables scripts .bat Windows
Redirection silencieuse output commande
NET SESSION >NUL 2>&1
Délai de x secondes
10 s
ping 127.0.0.1 -n 11 > NUL
5s
powershell -command "Start-Sleep -s 5"
1s
choice /t 1 /d y /n > NUL
3s
timeout /t 3 /nobreak > NUL
’Q’ to quit
choice /C Q9 /T 5 /D 9 /N > NUL
IF %errorlevel%==1 EXIT /B
Boucle FOR
FOR %%F IN (*.txt) DO ECHO %%F
- En script : %% .
- En ligne de commande : % .
Structure AND
IF "%choix%"=="A" IF "%mode%"=="admin" (
ECHO Acces autorise en mode admin.
)
Nombre de lignes dans fichier
FOR /f %%a IN ('find /c /v "" ^< "%fichier%"') DO set
13/14
Mémo variables scripts .bat Windows
Diviser une ligne longue en plusieurs lignes
ENDLOCAL ^
& SET "%3=%okInt%.%okDec%" ^
& SET "%4=%nokInt%.%nokDec%" ^
& SET "%5=%okInt%" ^
& SET "%6=%nokInt%"
14/14
Partager ce document
Télécharger le fichier
Faire un lien vers ce document
Lien permanentpour un message, un forum, un réseau social
Lien courtpour un SMS ou un profil
Code HTMLpour un site ou un blog
Du même auteur
Sur le même sujet
Les mots qui reviennent le plus dans ce document. Chacun lance une recherche dans les fichiers publics.
Commentaires
Pour voir les commentaires déjà publiés ou ajouter un commentaire, Connectez-vous ou Créez un compte.






