fonctionnement intime de l'interpréteur ...

Le
Lotre
Bonsoir,

J'aimerais avoir quelques confirmations :
Tout ça concerne l'utilisation d'un fichier de commande
et non pas le mode console.


Si j'ai bien compris :

1. Chaque "ligne" est intégralement analysée
et les variables éventuelles y sont remplacées
par leurs valeurs avant l'exécution de la "ligne"

2. Avant la lecture/analyse/traduction
de la "ligne" suivante, le fichier de commande
est intégralement rechargé.

Dans les deux cas le mot "ligne"
ne désigne pas forcément un ligne réelle

par exemple le bloc
IF <condition> (
commandes1
) else (
commandes2
)
compte pour une "ligne" unique.

Il en est de même, par exemple, pour les structures "For"
qui s'étalement parfois sur plusieurs lignes réelles
à l'aide de parenthèses judicieusement placées

3. une variable quelque soit son nom est "récupérée" par %nom%
sauf
- si c'est un argument
on utilise alors %0 , %1 etc
- si c'est un variable d'une boucles for
on utilise alors %%a pour la déclaration explicite de la
première
et %%a, %%b etc pour la récupération
( mais on n'est pas obligé de commencer à la lettre a.)

4. Les commandes(*) et les noms de variables
ne sont pas sensibles à la casse
SAUF pour les variables des boucles for


merci d'avance pour les précisions éventuelles,

HB


(*) mais, bien sûr, certains arguments selon la commande utilisée
pourront être sensible à la casse
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #18289641
"Lotre" news:
| Bonsoir,

Bonsoir,

| J'aimerais avoir quelques confirmations :

Moi aussi ! C'est qui, Moi, Lui, ou Lotre ?
Excellent :-)

Excusez-moi, je dois racrocher ! Le four sonne ;-)
Michel doit être dans le coin !

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Méta-MCI \(MVP\)
Le #18289871
Bonsoir !

À part le fait que les "variables", dans FOR ne sont pas sensibles à la
casse, et que le double pourcentage n'est que pour les batchs (en
interactif, un simple % suffit), ça me semble correct.

Sinon, il est possible de préciser que, si "remplacement des variables",
c'est pour % , il est possible d'utiliser ! , à l'exécution, avec
l'expansion retardée des variables d'environnement.

Mais, ce sont des détails. Le texte est globalement intéressant, et va
déjà bien au-delà de la compréhension des utilisateurs courants.

@-salutations
--
Michel Claveau
Lotre
Le #18289861
Gilles LAURENT [MVP] wrote:
"Lotre" news:
Bonsoir,



Bonsoir,

J'aimerais avoir quelques confirmations :



Moi aussi ! C'est qui, Moi, Lui, ou Lotre ?
Excellent :-)




et bien oui, Lotre c'est Moi ...
... enfin ... vous voyez ce que j'veux dire...

il m'a semblé que pour les citations
"Lotre" est plus facile à utiliser que "Moi" ;o)

HB
Méta-MCI \(MVP\)
Le #18290041
> Le four sonne



Tu manges à l'heure espagnole ?


Michel doit être dans le coin !



Oui, je suis rentré, après avoir perdu 6 heures aux urgences (pas pour
moi). Et, ces pertes de temps risquent de se reproduire dans les mois
qui viennent...
Heureusement, j'avais pris mon ordinateur portable, et j'ai pu créer une
page (http://ponx.org/ponx/opal1.htm)

@+
--
Michel Claveau
Lotre
Le #18290031
Méta-MCI (MVP) wrote:
Bonsoir !

À part le fait que les "variables", dans FOR ne sont pas sensibles à
la casse, (...)



??? are you certain ?

J'ai lancé ça ...
==================================== @echo off
@set AA=Test sur la casse.
@echo =================== @echo Minuscule : %aa%
@echo Majuscule : %AA%
@echo Melanges : %Aa%
@Pause
@echo =================== @for /f "tokens=1,2,3*" %%a in ("Un Deux trois Quatre Cinq") do (
@echo Majuscule : %%A
@echo Minuscule : %%a
@echo =================== @echo Majuscule : %%B
@echo Minuscule : %%b
@echo =================== @echo Majuscule : %%C
@echo Minuscule : %%c
@echo =================== @echo Majuscule : %%D
@echo Minuscule : %%d
)
@Pause
==============================
Pour le double %% ou pas c'est ok
J'avais précisé en intro que cela ne concernait que les batchs

Sinon, il est possible de préciser que, si "remplacement des
variables", c'est pour % , il est possible d'utiliser ! , à
l'exécution, avec l'expansion retardée des variables
d'environnement.



Oui mais , comme disait Polux, "c'est une autre histoire" . ;o)

Mais, ce sont des détails. Le texte est globalement intéressant, et
va
déjà bien au-delà de la compréhension des utilisateurs courants.



merci pour ce compliment !

A+

HB
MCI \(ex do ré Mi chel la si do\) [MVP]
Le #18290341
Re !

Autant pour moi (au temps pour moi ?) (*)
Les variables de FOR respectent effectivement la casse.
J'avais oublié ; c'est Aloïs qui commence...

@-salutations
--
Michel Claveau



http://fr.wiktionary.org/wiki/au_temps_pour_moi
http://fr.wiktionary.org/wiki/autant_pour_moi
Publicité
Poster une réponse
Anonyme