Batch: pourcentage de progression

Résolu/Fermé
Signaler
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010
-
Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
-
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

Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
216
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




;)
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

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.
Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
216
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
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

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
Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
216
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
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

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.
Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
216
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
Messages postés
28
Date d'inscription
vendredi 21 mai 2010
Statut
Membre
Dernière intervention
12 août 2010

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
Messages postés
3211
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
22 juin 2016
216
Re, bonjour

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