Afficher le contenu d'une variable en batch

valarno -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je n'arrive pas à afficher le contenu d'une variable en batch DOS.
Voici mon batch (le but étant d'afficher la variable "fic" à chaque itération de la boucle)

for /f %%a in ('dir /b') do (
set fic = %%a
echo "%fic%"
)

j'ai essayé : echo %%fic, echo %fic%, avec guillemet, sans guillement, rien n'y fait !!
Si quelqu'un voit l"erreur je suis preneur !

D'avance Merci
Configuration: Windows XP
Firefox 3.0.6

5 réponses

  1. Pico51 Messages postés 846 Statut Membre 69
     
    set fic = %%a
    Ne mets pas d'espace autour d'un égal ! Du moins, essaie.
    0
  2. valarno
     
    En fait le problème c'est pas l'affectation d'une valeur à la variable fic (avec ou sans espace elle obtient bien une valeur). Le problème se situe sur la ligne echo
    0
  3. Pico51 Messages postés 846 Statut Membre 69
     
    Qu'est-ce que la ligne echo te renvoie ?
    Parce que, j'ai toujours vu que l'on DOIT mettre des espaces en BATCH.
    0
    1. valarno
       
      Voilà le déroulement du batch. Comme tu peux le voir fic reçoit bien une valeur différente à chaque itération (j'ai bien mis un espace pour le set fic = %%a), mais echo renvoit toujours la même valeur qui correspond à rien....et surtout pas à la valeur de fic !!

      W:\>for /F %a in ('dir /b') do (
      set fic = %a
      echo ~DF9DCF.tmp
      )

      W:\>(
      set fic = ARC1C9
      echo ~DF9DCF.tmp
      )
      ~DF9DCF.tmp

      W:\>(
      set fic = EScan
      echo ~DF9DCF.tmp
      )
      ~DF9DCF.tmp

      W:\>(
      set fic = ExchangePerflog_8484fa312d2606bae8e1270f.dat
      echo ~DF9DCF.tmp
      )
      ~DF9DCF.tmp

      W:\>(
      set fic = fichier2.txt
      echo ~DF9DCF.tmp
      )
      ~DF9DCF.tmp

      W:\>(
      set fic = hsperfdata_ARMES
      echo ~DF9DCF.tmp
      )
      ~DF9DCF.tmp

      W:\>(
      set fic = java_install_reg.log
      echo ~DF9DCF.tmp
      )
      0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essaye
    setlocal enableDelayedExpansion
    for /f %%a in ('dir /b') do (
    set fic=%%a
    echo !fic!
    ) 
    setlocal disableDelayedExpansion
    0
    1. valarno
       
      Super dubcek mon batch fonctionne à présent !!

      Bizarre quand même cette syntaxe, c'est la première fois que je vois ça.

      Merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fafa
     
    for /f %%a in ('dir /b') do (
    set fic = %%a
    echo "%fic%"
    pause
    )
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      ?
      0