flecheLes Variables

 

f Définition d'une variable

f Demande de valeur à l'utilisateur

f Les variables d'environnements

f Découpage d'une variable

f Calculs simple avec des variables

 


 

puceDéfinition et utilisation d'une variable

Une variable permet de stocker une donnée indiquée, à tous moment dans le script on pourra faire appel à elle.

rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem définition de la valeur de la variable
set variable=1
rem affiche du texte en rappelant la variable grâce aux %
echo la valeur de la variable est %variable%
rem arrêt
pause

Résultat:

var

q L'appel de la variable, se fait en plaçant des % autour du nom de la variable.

 

 

puceDemande de valeur à l'utilisateur

Il semble intéressant d'interagir avec l'utilisateur en demandant une variable. Cela est possible grâce à l'utilisation du paramètre "/p", passer à la commande set, comme nous le montre cet exemple:

rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem le /p permet de demander le retour de la variable
set /p prenom= Quel est votre prenom :
rem remise à blanc
cls
rem affiche le texte avec la variable rentrée
echo Ca va %prenom%, tu a un joli prenom :-)
rem arrêt
pause

 

Résultat:

var2 var3

 

 

puceLes variables d'environnement

Nous avons vu comment définir des variables, en demander à l'utilisateur, mais Windows possède un certain nombre de variables déjà renseignées, concernant votre système. Pour tester vous pouvez essayer ce script.

rem désactive l'affichage des commandes
echo off
rem remise à blanc de l'écran
cls
rem liste des variables
echo Salut %USERNAME%,nous sommes le %DATE%
echo il est %Time% déja!,
echo %RANDOM% est un chiffre aléatoire.
echo Ton PC se nomme %COMPUTERNAME%,
echo il possède %NUMBER_OF_PROCESSORS% processeur,
echo c'est une architecture %PROCESSOR_IDENTIFIER%
rem arrêt
pause

 

Liste des variables d'environnement:

ALLUSERSPROFILE
APPDATA
CLASSPATH
CommonProgramFiles
COMPUTERNAME=
ComSpec
DEVMGR_SHOW_DETAILS
FP_NO_HOST_CHECK
HOMEDRIVE
HOMEPATH
LOGONSERVER
NUMBER_OF_PROCESSORS
OS
Path
PATHEXT
PROCESSOR_ARCHITECTURE
PROCESSOR_IDENTIFIER
PROCESSOR_LEVEL
PROCESSOR_REVISION
ProgramFiles
PROMPT
QTJAVA
SESSIONNAME
SystemDrive
SystemRoot
TEMP
TMP
USERDOMAIN
USERNAME
USERPROFILE
windir
DATE
TIME
CD
RANDOM
ERRORLEVEL
CMDEXTVERSION
CMDCMDLINE

 

puceDécoupage d'une variable

L'interêt de découper une variable est d'extraire certaines parties afin de les retraitées.

p Principe:

Prenons la variable d'environnement %ProgramFiles%

echo %ProgramFiles% donne C:\Program Files

p Désormais nous souhaitons conserver uniquement le lecteur "c:\"

echo %ProgramFiles:~0,3%

On observe que l'ajout du ":~" qui indique le découpage, les valeurs suivantes "0,3" indiquent comment la découper. En effet le 0 indique que le début de la sélection est le 0eme caractère, le 3 indique qu'elle s'arrête au 3eme.

Autre solution possible, par suppression de caractères:

echo %ProgramFiles:~,-13%

p Conservons désormais le nom du dossier "Program Files" uniquement

echo %ProgramFiles:~3,13%

echo %ProgramFiles:~3%

 

p Exemple:

rem désactive l'affichage des commandes
@echo off
rem remise à blanc de l'écran
cls
echo variable de base date: %date%
rem découpage %date:~0,2%
rem 1er chiffre numéro du caractère de début de la sélection
rem 2eme chiffre nombre de caractères après le début
echo Nous sommes le %date:~0,2% le %date:~3,2%eme mois de l'année %date:~6,4%
rem arrêt
pause

 

p Résultat:

decuop

 

puceCalculs simple avec des variables

Grâce aux batch il est possible de faire des opérations simples telle qu'une addition, soustraction, multiplication ou encore division. Cela est possible avec la commande set /a.

@echo off

echo Addition
set /a add = 5+5
echo 5 + 5 = %add%

echo.
echo Soustraction
set /a sous = 10-5
echo 10 - 5 = %sous%

echo.
echo Division
set /a div = 10/2
echo 10 / 2 = %div%

echo.
echo Multiplication
set /a mult = 10*2
echo 10 * 2 = %mult%

pause

 

p Résultat:

 

q Il est possible de donner des priorités aux opérations grâce aux parenthèses.


@echo off

echo Priorité opératoire
set /a pri = ((10*5)*2 + (10*5)*2)/2
echo ((10*5)*2 + (10*5)*2)/2 = %pri%

 

p Résultat:

 

 

q Une question, une remarque, n'hésitez pas à visiter le forum

 

Nous avons pu voir l'utilisation des différentes variables sous DOS, désormais nous pouvons aborder la création de fonctions qui vont considérablement augmenter les possibilités de nos scripts.

p Étape suivante: Les fonctions