TexteTop
Recherches

Nom:
Mot de passe:

Register S'enregistrer

Visiteurs: 1316017
Aujourdhui: 309
Connectés: 2

Login Membres: 3286


Menu

Liens Commerciaux

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

 



comment Commentaire de kaming    le 22/07/2012

Write

et la fin...

te donc le code qui est: bizarre1234
echo Pour finir le quizz, tape fin!
set/p "requizz=>"
if %requizz%== fin goto FIN
:QUEST1/2
echo Mauvaise reponse!!! Reessaie en cliquant sur enter!!!
Pause
cls
goto QUEST1
:QUEST2/2
echo Mauvaise reponse!!! Reessaie en cliquant sur enter!!!
Pause
cls
goto QUEST2
:QUEST3/2
echo Mauvaise reponse!!! Reessaie en cliquant sur enter!!!
Pause
cls
goto QUEST3
:QUEST4/2
echo Mauvaise reponse!!! Reessaie en cliquant sur enter!!!
Pause
cls
goto QUEST4
:FIN
echo bonne journee %prenom%!!!
pause
end


comment Commentaire de kaming    le 22/07/2012

Write

la suite

/p "rep2=>"
if NOT %rep2%== c goto QUEST2/2
echo Bonne reponse %prenom%!!! Tapez enter pour acceder a la prochaine question!!!
Pause
cls
goto QUEST3
:QUEST3
echo Que veut dire SNCF?
echo. a) Sombre Novice Controleur Francais
echo. b) Salut Nana Co**e et Fichue
echo. c) Je ne sais pas
echo. d) Societee Nationale des Compagnies Ferroviaire
echo. Pour repondre, tapez a/b/c/d.
set/p "rep3=>"
if NOT %rep3%== d goto QUEST3/2
echo Bonne reponse %prenom%!!! Tapez enter pour acceder a la prochaine question!!!
Pause
cls
goto QUEST4
:QUEST4
echo Quel est le surnom sur le net du createur de ce Quizz?
echo. a) Jakonb
echo. b) Kaming
echo. c) Baikass
echo. d) PullyMen
echo. Pour repondre, tapez a/b/c/d.
set/p "rep4=>"
if NOT %rep4%== b goto QUEST4/2
echo Bonne reponse! Tu as reussi a repondre a toutes les questions, %prenom%, tu meri


comment Commentaire de kaming    le 22/07/2012

Write

je voulais demander ce que vous pensiez de mon script de quizz...

echo off
cls
set/p prenom= Bonjour! Tapez votre prenom SVP:
cls
:QUIZZ
color 2f
echo Bienvenu %prenom% !!! Voici le Mega Quizz !!! Tu vas devoir recuperer un code a la fin de ces questions pour gagner une recompense!!! Pour acceder a la premiere question, tapez 1!
set/p "questbegin=>"
:QUEST1
if %questbegin%== 1 echo Quelle est la capitale de la Hongrie?
echo. a) Bucarest
echo. b) Budapest
echo. c) Boncasiest
echo. d) Ghunda
echo. Pour repondre, tapez a/b/c/d.
set/p "rep1=>"
if NOT %rep1%== b goto QUEST1/2
echo Bonne reponse %prenom%!!! Tapez enter pour acceder a la prochaine question!!!
Pause
cls
goto QUEST2
:QUEST2
echo Quelle est la monnaie polonaise?
echo. a) Le Pontoki
echo. b) la Varsavik
echo. c) le Zloty
echo. d) l'Euro
echo. Pour repondre, tapez a/b/c/d.
set


comment Commentaire de Paulspee3D    le 17/04/2012

Write

Merci, a vous j'ai maintenant appris de nombreuses chises grace a vous !!!


comment Commentaire de LastWitch    le 01/03/2012

Write

erf je croit que j'ai fait le con en voulant tester quelquechose voyez plutôt:

@echo off

echo.

echo veuillez renseignez un password svp!

echo.

set /p code= password:

echo.

echo maintenant inscrivez un nom d'utilisateur svp

echo.

set /p nom= nom d'utilisateur:

echo.

(voici la ligne ou il y a erreur) echo vous avez bioen ete enregistrer sous le nom d'utilisateur: %nom% et password: %password% <--ici étand donné que la variable password doit déja existé qu'est-ce qu'il risque de se passé?


comment Commentaire de julienlali    le 22/02/2011

Write

Ça fait des jours que je cherche un tutoriel comme ça ! Merci mille fois !


comment Commentaire de Solomon    le 24/10/2010

Write

Je remercie l'auteur de ce tutoriel pour son travail. C'est vraiment bien expliqué, bien détaillé. Je n'ai trouvé ça nulle part ailleurs! Bonne continuation!


comment Commentaire de haxiwi    le 20/10/2010

Write

svp, pouvez me dire une commande permattant de lancer une fenetre graphique de parcourir pour séléctionner l'emplacement d'un fichier ?

 

et merci


comment Commentaire de paz    le 13/09/2010

Write

salut


comment Commentaire de old Sergio    le 30/06/2009

Write

Bonjour, Merci pour ces précieuses infos. Autre question : comment intégrer le contenu de la variable dans le nom d\'un fichier (copier ou renommer le fichier toto.txt en %DATE%toto.txt )


comment Commentaire de hardwarista    le 08/04/2009

Write

Il faut écrire à la place

set myvar=myval

sans espaces !


comment Commentaire de hardwarista    le 08/04/2009

Write

Merci, très bon tutoriel.

Néanmoins il faut rappeler que la commande set n\'accepte pas d\'espace dans la valeur de la variable

ex:

set myvar = myval

... est interprétée comme

set myvar=

... et la valeur de la variable myvar effacée

Il faut écrire à la place


comment Commentaire de paz    le 19/11/2008

Write Comment fait on pour effectuer des opperation avec des virgules ? Que la virgule soit dans le calcul ou dans le résultat, cela donne toujours une réponse erroné.

comment Commentaire de flox    le 04/07/2008

Write

Bonjour,

vous pouvez laisser ici vos commentaires sur la page, son contenu des éléments complémentaires.

Cdl


Vous souhaiter ajouter un commentaire enregistrer vous, sur le site ici


 
Plan du site