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

  FORUM HardWare.fr
  Programmation
  Perl

  Probleme de variables et de boucle (DOS)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de variables et de boucle (DOS)

n°1311153
stivinvp
Posté le 22-02-2006 à 08:52:52  profilanswer
 

Bonjour,
 
Je debute -faut bien un jour-  en dos_shell et j'ai un gros Pb avec la prise en compte de variables dans les boucles.
Je maitrise les shells Unix, mais ici je suis perdu.
 
Voila ce que je veux faire, par ordre de difficulté:
 
1° test:
"Pour i parmi 1 5 8 seter une variable avec la valeur de i et l'afficher"
Ca a l'air tres simple mais ca marche pas comme je le souhaite:
 
=>Voila ce que je fais dans une fenetre de commande (dans un fichier .bat il faut rajouter des %  si j'ai bien compris..)
 
for %i in ( 1 5 8 ) do (
 set var=%i
 echo %var%
 )
 
En laissant le mode echo a on, je vois bien qu'il assigne bien la valeur voulue a "var" mais le echo me donne %var% et non 1 2 ou 3 comme attendu.
 
Resultat
 )
 set var=1
  echo %var%
 )
 %var%
 (
 set var=5
  echo %var%
 )
 %var%
 (
 set var=8
  echo %var%
 )
 %var%
 
 
En remplacant le echo "%var%" par "echo %var" j'obtiens bien le résultat attendu avec les echo .
 
Question: Quand faut-il utiliser %var ?  %var% ? difference?
 
 
 
2eme test plus compliqué  je cree un fichier testfic.txt avec des lignes du style valeur_lettre (1_A  4_B  9_C ...)
je veux faire une boucle dans ce fichier et parser le resultat en deux variables valeur et lettre que j'affiche :
 
Voila ce que je fais  (toujours avec echo a on )
 
set PARSEARG="eol= tokens=1,2 delims=_"
for /f %PARSEARG% %a in ('type testfic.txt') do (
 set valeur=%a
 set lettre=%b
 echo %lettre
 echo %valeur
)
 
Resultat:
 (
 set valeur=1
  set lettre=A
  echo %lettre
  echo %valeur
 )
 %lettre          <== Pourquoi n'affiche-t-il pas A  ?
 %valeur          <== Pourquoi n'affiche-t-il pas 1  ?
 
 (
 set valeur=5
  set lettre=B
  echo %lettre
  echo %valeur
 )
 %lettre
 %valeur
 
 (
 set valeur=9
  set lettre=D
  echo %lettre
  echo %valeur
 )
 %lettre
 %valeur
 
 
 
Si je remplace echo "%valeur" et "%lettre" par "%valeur%" et "%lettre%" pour les commandes echo,
 voici ce que j'obtiens curieusement:
 
 (
 set valeur=1
  set lettre=A
  echo D             <==Pourquoi affiche-t-il ces valeurs? est-ce un "reliquat" du test précédent?
  echo 9
 )
 D
 9
 
 (
 set valeur=5
  set lettre=B
  echo D
  echo 9
 )
 D
 9
 
 (
 set valeur=9
  set lettre=D
  echo D
  echo 9
 )
 D
 9
 
Merci a tous ceux qui pourront m'eclairer sur la question et me tuyauter sur un bon tutorial dos-shell
 
D'avance merci.

mood
Publicité
Posté le 22-02-2006 à 08:52:52  profilanswer
 

n°1311193
pospos
Posté le 22-02-2006 à 09:48:45  profilanswer
 

mauvaise catégorie: tu es dans la caté perl la


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

  Probleme de variables et de boucle (DOS)

 

Sujets relatifs
[js]probleme de champs grisésproblème de redirection
VBA - Probleme Appel de fonctionProblème avec richtextbox et mysql.
Prob d'arret d'une boucle for sur scilab (rigoler pas je débute ;)PB excecution d'une ligne de commande DOS
[VBA] pb graphique avec des variablesProblème de lenteur d'accès MySQL
[Delphi] Problème Delphi Teechart 6boucle if
Plus de sujets relatifs à : Probleme de variables et de boucle (DOS)


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