Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2525 connectés 

  FORUM HardWare.fr
  Programmation

  Utilisation de variable en MS-DOS ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation de variable en MS-DOS ?

n°65196
Gaellick
Quoi ??? Noooonn !! Si !
Posté le 15-10-2001 à 13:53:14  profilanswer
 

Salut à tous,
 
Je voudrai qques explquations sur l'utilisation des variables en MS-DOS. Le peu que j'ai compris pour l'instant c'est quelles sont entourées du signe pourcentage (genre : %MA_VARIABLE%), mais je ne sais pas comment on fait pour leur affecter une valeur, ni comment les passer en parametre a un autre fichier ".bat" que celui que l'on est en train d'utiliser.
 
Je vous remercie d'avance pour votre aide.


---------------
Qui cherche le soleil évite la pluie !
mood
Publicité
Posté le 15-10-2001 à 13:53:14  profilanswer
 

n°65198
instantdha​rma
Ailleurs c'est ici
Posté le 15-10-2001 à 13:59:25  profilanswer
 

salut
Les Variables : un nom de variable est une chaîne de caractères. On affecte une valeur à la variable avec la commande set ; on désigne le contenu de la variable en entourant le nom de la variable de % :
Set mavar= « c:\windows » /* sans espaces autour du signe égale */
Echo %mavar% /* affiche le contenu de la variable mavar. */
 
Les paramètres :
Paramètres formels : %0 à %9. Ils sont remplacés par leur valeur à l’exécution. %0 est un paramètre spécial qui désigne le nom complet de la procédure. %1 est le nom du premier para qui suit le nom du fichier de commandes, etc, etc...


---------------
di. / www.diredaredare.org - Ailes de la ville
n°65253
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-10-2001 à 15:38:55  profilanswer
 

pour le SET, ça marche bien avec des espaces il me semble...
 
set variable = 45
 
passage de variable:
 
call autre.bat %variable%
 
récupération et affichage dans autre.bat:
 
echo %1


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°65265
JPA
Posté le 15-10-2001 à 16:27:53  profilanswer
 

désolé de te contredire antp (pour une fois) :
set toto=xxx et
set toto= xxx
de même avec set toto =
ne donnent pas le même résultat :
set toto = crée une variable toto_    le _ signifie ici l'espace
set toto= xxx crée une variable toto valant _xxx
 
C'est un des bugs les plus classiques des progrs batch...
 
tu peux le vérifier en essayant de supprimer une variable toto_ par la commande set toto=  : celà ne marche pas, la variable existe toujours.
 
 
A+

 

[edtdd]--Message édité par JPA--[/edtdd]

n°65278
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-10-2001 à 16:57:23  profilanswer
 

mille excuses, tu as raison
:jap:
je crois que je devrais suivre une formation MS-DOS, depuis que j'ai Win98 (et maintenant Win2k) je n'y touche plus... et j'oublie mes origines (DOS 4 + Win3.0, DOS 6 + Win3.1).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°65929
Gaellick
Quoi ??? Noooonn !! Si !
Posté le 18-10-2001 à 00:24:50  profilanswer
 

Merci beaucoup pour vos réponses.
 
Si j'ai bien compris, %1 reprend la valeur du premier parametre passer derriere l'appelle d'un fichier .bat et %2 le second etc...
Par contre j'ai déjà vu dans des batchs les variables entourées de guillemets ex : "%ma_variable%". A quoi servent-elles ?

n°65930
youdontcar​e
Posté le 18-10-2001 à 00:26:59  profilanswer
 

gaellick a écrit a écrit :

Merci beaucoup pour vos réponses.
 
Si j'ai bien compris, %1 reprend la valeur du premier parametre passer derriere l'appelle d'un fichier .bat et %2 le second etc...
Par contre j'ai déjà vu dans des batchs les variables entourées de guillemets ex : "%ma_variable%". A quoi servent-elles ?  



sûrement pour les noms de fichiers. si tu as un fichier avec un espace, faire
 
copy my file.txt backup.txt
 
ne marchera pas. il faut utiliser :
 
copy "my file.txt" backup.txt
 
...

n°65944
instantdha​rma
Ailleurs c'est ici
Posté le 18-10-2001 à 08:28:43  profilanswer
 

JPA>On sent le vieux briscard ms-dossien :D
Les guillemets : à utiliser pour les noms de fichiers dits "longs", cad qui ne respectent pas le format ms-dos.
Atention, les guillemets n'ont pas d'impact comme dans un langage de programmation : toutes les occurences d'une variable sont remplacées par leur valeur, qu'il y ait des guillemets ou pas :
set mavar=coucou
echo %mavar% /* affiche coucou */
echo "%mavar%" /* affiche "coucou" */
Accessoirement, le @ en début de ligne inhibe l'afficage de la commande lancée par le bat, pou faire propre une fois que ça tourne...


---------------
di. / www.diredaredare.org - Ailes de la ville
n°65958
JPA
Posté le 18-10-2001 à 09:34:20  profilanswer
 

-> instantdharma :lol:
 
-> gaellick : J'ai oublié de te donner 2 conseils :
1) Faire en sorte que les variables que tu crée aient un nom différent des variables d'environnement standard. pour celà le mieux est de les créer de la forme _toto ou __toto.
2) en fin de batch, il vaut mieux les supprimer car elles ne sont pas supprimées automatiquement et celà t'occupe de la mémoire inutilement, ce qui pourrait t'empêcher de créer d'autres variables dans d'autres batch :
 
:fin
set _toto=
set _toto2=
etc.
 
A+

n°66451
Gaellick
Quoi ??? Noooonn !! Si !
Posté le 19-10-2001 à 17:17:43  profilanswer
 

Super les gars, je n'attendais pas autant de bon conseils  :love:  
 
Une autre question me turlupine et m'est revenu a l'esprit apres le message de nstantdharma :

Citation :


Accessoirement, le @ en début de ligne inhibe l'afficage de la commande lancée par le bat, pou faire propre une fois que ça tourne...


 
On voit souvent des fichiers batchs commencer par :  
 
@echo
 
Pour quelle raison, et à quoi sert le @ ici.
Qu'entends tu par inhiber l'affichage ?
Parfois je vois également un point "." après echo.  
Pourquoi ?

 

[edtdd]--Message édité par gaellick--[/edtdd]


---------------
Qui cherche le soleil évite la pluie !
mood
Publicité
Posté le 19-10-2001 à 17:17:43  profilanswer
 

n°66457
*syl*
--> []
Posté le 19-10-2001 à 17:26:40  profilanswer
 

gaellick a écrit a écrit :

Super les gars, je n'attendais pas autant de bon conseils  :love:  
 
Une autre question me turlupine et m'est revenu a l'esprit apres le message de nstantdharma :

Citation :


Accessoirement, le @ en début de ligne inhibe l'afficage de la commande lancée par le bat, pou faire propre une fois que ça tourne...


 
On voit souvent des fichiers batchs commencer par :  
 
@echo
 
Pour quelle raison, et à quoi sert le @ ici.
Qu'entends tu par inhiber l'affichage ?
Parfois je vois également un point "." après echo.  
Pourquoi ?  
 
 




le @ permet de ne pas voir la commande qui est en train d'être exécutée :
 
ex1 : @echo toto
sortie ==> toto
 
ex2 : echo toto
sortie ==> echo toto
           toto
 
le echo. permet d'afficher une ligne blanche..

n°66498
Gaellick
Quoi ??? Noooonn !! Si !
Posté le 19-10-2001 à 19:48:02  profilanswer
 

Merci,
 
Allez une derniere et je vous laisse tranquille.
 
Quel est la signification de @echo off ?
 
Je trouve ce bout de code tres frequemment egalement.

n°66503
*syl*
--> []
Posté le 19-10-2001 à 20:27:51  profilanswer
 

gaellick a écrit a écrit :

Merci,
 
Allez une derniere et je vous laisse tranquille.
 
Quel est la signification de @echo off ?
 
Je trouve ce bout de code tres frequemment egalement.  




tu le mets 1 fois au début de ton BAT et ensuite t'as plus besoin de mettre des @ devant chaque ligne pour cacher le "code"

n°66563
Gaellick
Quoi ??? Noooonn !! Si !
Posté le 20-10-2001 à 14:32:25  profilanswer
 

Merci à tous !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Utilisation de variable en MS-DOS ?

 

Sujets relatifs
[Delphi] Utilisation du Owner ...[C++] utilisation de la touche tab pour basculer le focus
Est-il possible d'incrementer le nom d'une variable ???[php] upload d'un nombre variable de fichiers
[C++] VISUAL: Listbox de taille variable??[uptime] quelle variable sous dos?
Special Dos et echo[php] image gif et utilisation de police ttf
Javascript dans PHP : comment recuperer une variable de session ?Question sur DOS
Plus de sujets relatifs à : Utilisation de variable en MS-DOS ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR