Incrementation de variable DOS

Salut,

Comment faire pour faire une tempo dans un Batch
j'ai essayer de faire une boucle avec incrementation de variable, la définition de la varible fonctionne mais l'incrementation ne fonctionne pas.
Voila mon batch :

SET tempo = 0
:debut
if tempo==10000 goto fin
%tempo%==%tempo%++1
goto debut
:fin

j'ai essayé avec ou sans % avec %%, y'a rien qui marche, ni avec les = et + non doublés

Merci

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Pour que le script puisse prendre en compte la nouvelle valeur de la variable il faut faire appel à l'expansion retardée et au lieu d'apeller la variable par %compteur%, il faut l'apeller par !compteur!
    par exemple :
    setlocal enabledelayedexpansion
    set compteur=1
    for %%f in (*) do (
    set /A compteur+=1
    set compteur
    echo compteur : !compteur!
    )
    endlocal

    Pour plus de renseignement, consulter :
    www.microsoft.com

    dans une fenêtre de commande : set /?
    1. Merci d'avoir mis du temps pour la communauté. Bon courage Ami.
  2. En console dos sous windows 2000, pour faire une incrementation de variable , il faut utiliser le parametre /A, sans quoi, il prends l'opération pour une chaine de caractere :

    set test=1
    set /A test=%test%+1
    set test

    tu peux vérifier les options de set avec

    set /?
    1. Salut

      ouai suis un peu en retard mais sa peut toujours servir que quelqu'un poste la solution au problème original !

      désolé de dire sa mais ton code est plein de petites fautes qui font que sa ne risque pas de marcher !

      voila en reprenant ton exemple le code qui marche !

      @echo off
      color a

      set tempo=0
      :debut
      if %tempo% == 10000 goto fin
      set /a tempo=%tempo%+1
      goto debut
      :fin

      echo sa marche ! =)
      pause>nul

      Et voila pour tout ceux a qui sa pourrai servir !

      PS ----> le sujet était la temporisation en batch alors pour ceux qui veulent ...

      @echo off
      color a

      ping localhost -n 10>nul

      echo sa marche ! =)
      pause>nul

      !!! OU 10 EST (environ) LE NOMBRE DE SECONDE DE TEMPORISATION !

      Thanks !
      1. Modérateur
        Salut.

        Je suis pas trop sur, mais je crois qu'il te faut utiliser la commande "shift".

        Fais un tour sur: http://www.namani.net/
        Il y a des explications sur les commandes DOS, et sur les batchs.

        JP