Les Variables
Demande de valeur à l'utilisateur
Une variable permet de stocker une donnée indiquée, à tous moment dans le script on pourra faire appel à elle.
Résultat:
L'appel de la variable, se fait en plaçant des % autour du nom de la variable. |
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:
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
L'interêt de découper une variable est d'extraire certaines parties afin de les retraitées.
Principe:
Prenons la variable d'environnement %ProgramFiles%
echo %ProgramFiles% donne C:\Program Files
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%
Conservons désormais le nom du dossier "Program Files" uniquement
echo %ProgramFiles:~3,13%
echo %ProgramFiles:~3%
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
Résultat:
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.
Résultat:
Il est possible de donner des priorités aux opérations grâce aux parenthèses.
Résultat:
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.