Afficher le contenu d'une variable en batch

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. set fic = %%a
    Ne mets pas d'espace autour d'un égal ! Du moins, essaie.
    0
    1. 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
      1. 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. 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
      2. hello
        essaye
        setlocal enableDelayedExpansion
        for /f %%a in ('dir /b') do (
        set fic=%%a
        echo !fic!
        ) 
        setlocal disableDelayedExpansion
        0
        1. 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
      3. for /f %%a in ('dir /b') do (
        set fic = %%a
        echo "%fic%"
        pause
        )
        0
        1. ?
          0