les languages de programmation :p
les languages de programmation :p
les languages de programmation :p
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

les languages de programmation :p

apprendre la programmation avec des cours de batch et des cours sur d'autres language (batch, java, html, css)
 
AccueilDernières imagesRechercherS'enregistrerConnexion

les cours pour le batch sont disponible!!!!

cours de HTML disponible!!!

Des Exercices de C , C++ , php , python , C# et batch

Des cours de php sont disponible!!

recherche prof de C#!!

nous recherchons des prof aguéri dans l'une des matière du site proposez-vous dans la rubrique!!
-21%
Le deal à ne pas rater :
LEGO® Icons 10329 Les Plantes Miniatures, Collection Botanique
39.59 € 49.99 €
Voir le deal

 

 Cours N°12 : La commande SETLOCAL

Aller en bas 
AuteurMessage
Admin
Admin
Admin
Admin


Messages : 155
Points : 360
Réputation : 2
Date d'inscription : 02/07/2014
Age : 36
Localisation : Mars

Cours N°12 : La commande SETLOCAL Empty
MessageSujet: Cours N°12 : La commande SETLOCAL   Cours N°12 : La commande SETLOCAL Icon_minitimeJeu 7 Aoû - 8:36

+
----
-
Bonjour tout le monde !


Note importante : Dorénavant je vous conseil d'ouvrir vos fichier BATCH avec notepad++.

Dans ce cours je vais vous expliquer comment se servir de la commande SETLOCAL ENABLEDELAYEDEXPANSION .

Imaginons un programme simple:

Tester le !

Code:

@ECHO OFF

REM Quelques valeurs :

SET Choix=0

SET valeur1=12
SET valeur2=45
SET valeur3=31

SET valeurAafficher=0

SET /P Choix=Votre choix : (tapez 1, 2 ou 3)
SET /A valeurAafficher=valeur%Choix%

REM si vous avez tapez 1 le programme va voir :
REM SET /A valeurAafficher=valeur1
REM et il va prendre la valeur que contient valeur1.

ECHO.valeur que vous avez choisi : valeur%Choix% et elle contient %valeurAafficher%

PAUSE


Note : Noter que ce programme n'est pas protégé des gens qui entrerai n'importe quoi dans Choix

Maintenant remplacer les valeurs contenu dans valeur1,2 et 3 par des mots :


Code:

@ECHO OFF

REM Quelques valeurs :

SET Choix=0

SET valeur1=Exemple1
SET valeur2=Exemple2
SET valeur3=Exemple3

SET valeurAafficher=0

SET /P Choix=Votre choix : (tapez 1, 2 ou 3)
SET /A valeurAafficher=valeur%Choix%

REM si vous avez tapez 1 le programme va voir :
REM SET /A valeurAafficher=valeur1
REM et il va prendre la valeur que contient valeur1.

ECHO.valeur que vous avez choisi : valeur%Choix% et elle contient %valeurAafficher%

PAUSE


D'aprés ce qu'on a vu tout a l'heure cela devrai m'afficher Exemple1,Exemple1 ou Exemple3.

Mais non !

Il affiche toujours zéro.


Explication:

La première fois les variables contenaient des numéros.
Dans le second teste les variables contiennent de(s) lettre(s)

donc si je rentre 1 dans Choix :

Le programme voit ceci :
SET /A valeurAafficher=valeur%Choix%

puis remplacement de Choix:
SET /A valeurAafficher=valeur1

puis il prend son contenu :
SET /A valeurAafficher=Exemple1

Or le "numéro" Exemple1 n'est pas un numéro, ce sont des lettres,
la variable valeurAafficher est donc mise à zéro.

valeurAafficher=0




Mais comment faire ?!


Tout "simplement" avec la commande SETLOCAL.

fonctionnement :
Je me permet de vous rappeler que les caractères qui servent à lire les variables sont ... les % (pourcent).

Preuve :

Code:

@ECHO OFF

SET valeur=Bonjour

ECHO.%valeur%

PAUSE


La commande SETLOCAL permet de rajouter un caractère de lecture.

Le ! (point d'exclamation)




Et maintenant :

Code:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

REM Quelques valeurs :

SET Choix=0

SET valeur1=Exemple1
SET valeur2=Exemple2
SET valeur3=Exemple3

SET valeurAafficher=0

SET /P Choix=Votre choix : (tapez 1, 2 ou 3)

ECHO.valeur que vous avez choisi : valeur%Choix% et elle contient !valeur%Choix%!

PAUSE


La commande SETLOCAL ENABLEDELAYEDEXPANSION ne sert pas qu'à faire ceci elle modifie encore d'autre choses mais je n'en parlerai pas dans ce cours.

Quand on écrit :

Code:

SETLOCAL ENABLEDELAYEDEXPANSION


On dit que SETLOCAL est la commande qui reçoit en paramètre ENABLEDELAYEDEXPANSION.

ENABLEDELAYEDEXPANSION est donc un paramètre pour la commande SETLOCAL
Revenir en haut Aller en bas
https://batchking.forumactif.org
 
Cours N°12 : La commande SETLOCAL
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» cours n°04 [cours]la commande ping
» cours n°20 Résumé - La commande SET
»  cours n°19 La commande ECHO
»  cours n°18 La "commande" windows.dll
»  cours n°17 Explication technique d'une commande

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
les languages de programmation :p :: cours de programmation :: cours de batch-
Sauter vers: