Aller au contenu

Mémo variables scripts bat

Mémo variables scripts bat

Aperçu du document Mémo variables scripts bat.pdf, page 1 sur 14
Page 1 sur 14Lire le document
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



Partager ce document

Mémo variables scripts batfichier-pdf.frPDF14 pages

Vos contacts verront cette carte, avec la première page en image.

QR Code de ce document
Sur un téléphoneScannez le code pour ouvrir le document.Enregistrer le QR Code

Télécharger le fichier

Première page du document
Téléchargement gratuit

Mémo variables scripts bat.pdf

PDF 1.7115 Ko14 pages

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.