Batch: pourcentage de progression

Résolu
sam0ray Messages postés 29 Statut Membre -  
karirovax Messages postés 3584 Statut Membre -
Bonjour,

Je veux améliorer mon script Batch en affichant le pourcentage de progression (d'une boucle for) je ne sais pas comment faire ? Dessous l'exemple de la boucle :

for /f "delims=" %%a in ('type file1.txt') do (
echo %%a>>file2.txt
)

Comment faire pour afficher le pourcentage de progression d'extraction de file2.txt au lieu de curseur de console.

Merci d'avance pour votre aide

5 réponses

  1. karirovax Messages postés 3584 Statut Membre 215
     
    salut ;)

    pourquoi pas ceci :

    @echo off

    for /L %%i in (0,10,90) do (
    cls
    echo.
    echo Effectu': %%i %%
    ping 127.0.0.1 -n 2 > NUL
    )

    cls
    echo.
    echo Effectu': 100 %%
    echo.
    pause


    ou ceci :

    @echo off

    echo ceci est un test
    echo.
    echo ???????????????????????????????????????»
    ECHO ? ?
    echo ? ceci est un test ?
    ECHO ? ?
    echo ???????????????????????????????????????¼
    echo.
    SET load=
    SET /A loadnum=0

    :Loading
    set /p "=>" <nul
    PING -n 2 localhost >nul
    SET /A loadnum+=1
    IF not %loadnum% EQU 30 GOTO :loading
    echo.
    pause



    ;)
    0
  2. sam0ray Messages postés 29 Statut Membre
     
    Bonjour,

    merci pour votre proposition, mais mon souci c'est que je ne sais pas comment l'implémenter dans une boucle comme ceci :

    for /f "delims=" %%a in ('type file1.txt') do (
    echo %%a>>file2.txt
    )

    si je met ta proposition après l'exécution de la boucle ça n a pas de sens puisque l'extraction de fichier file2 ce fait dans plus de 2min et le pourcentage de progression vient après rapidement (30secondes) de même si je le met avant ou à l'intérieure de la boucle ... soit que je ne sais pas comment faire soit que j'ai mal exprimer mon besoin ...

    J y ai pensé à une idée on prenant en considération la solution de karirovax, :

    1-d'abord comment exécuté les deux boucles à la fois çàd la boucle de pourcentage de progression et la boucle de l'extraction de fichier txt

    2-mettre en place un petit calcule qui nous permettre d'être bien précis sur le
    nombre de ping par seconde autrement dit si le batch traite 100 lignes/seconde et que le fichier sources contient 10000 lignes dans ce cas en à besoin de 1ping par seconde soit 100 seconde en total.

    j'espère d'être un peut claire cette fois ci
    merci de votre aide.
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re, bonjour

      et comme ça : ( pour 120 secondes = 2 minutes )

      for /f "delims=" %%a in ('type file1.txt') do (
      for /L %%i in (0,1,120) do (
      cls
      echo.
      echo %%a>>file2.txt
      echo Effectu': %%i %% 
      ping 127.0.0.1 -n 2 > NUL
      )
      )
      cls
      echo.
      echo Effectu': 100 %% 
      echo.
      pause
      0
  3. sam0ray Messages postés 29 Statut Membre
     
    Bonjour,

    merci pour votre réponse, j'ai testé le scripte dessous mes remarques :
    -Des bips pour chaque ping, comment faire pour les désactivés
    -le contenu de fichier résulte (file2) est multiplié 120 fois donc lentement de traitement
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re, bonsoir

      pour la supprition des beep donc il suffit de supprimer les .
      pour la multiplication :

      for /f "delims=" %%a in ('type file1.txt') do (
      for /L %%i in (0,1,120) do (
      cls
      echo.
      echo Effectu': %%i %%
      ping 127.0.0.1 -n 2 > NUL
      )
      echo %%a>>file2.txt

      )
      cls
      echo.
      echo Effectu': 100 %%
      echo.
      pause
      0
  4. sam0ray Messages postés 29 Statut Membre
     
    Bonsoir,

    merci karirovax pour votre aide, c'est bon pour le bip ainsi que les lignes multiple, par contre y tjrs mais :
    le cycle de pourcentage de progression s'exécute pour chaque ligne.

    merci pour votre aide.
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re,

      et avec ceci :

      @echo off
      SET load=
      SET /A loadnum=0

      :Loading
      set /p "=#" <nul

      PING -n 2 localhost >nul
      SET /A loadnum+=1
      IF not %loadnum% EQU 120 GOTO :loading
      for /f "delims=" %%a in ('type file1.txt') do (
      echo %%a>>file2.txt
      )
      cls
      echo.
      echo Termin'e avec succ'
      echo.
      pause
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sam0ray Messages postés 29 Statut Membre
     
    Bonjour,

    merci karirovax cette fois ci c'est bon l'exportation s'est déroulé avec succès un peu de lentement mais c'est normal puisque il s'agit d'une boucle

    merci infiniment
    je déclare cette question close
    0
    1. karirovax Messages postés 3584 Statut Membre 215
       
      Re, bonjour

      de rien , je suis içi pour tout le monde ;)
      0