Batch: pourcentage de progression

Résolu/Fermé
sam0ray Messages postés 28 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 12 août 2010 - Modifié par sam0ray le 26/05/2010 à 01:21
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 - 2 juin 2010 à 20:02
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

karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
26 mai 2010 à 22:57
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
sam0ray Messages postés 28 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 12 août 2010
Modifié par sam0ray le 28/05/2010 à 00:12
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
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
29 mai 2010 à 20:01
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
sam0ray Messages postés 28 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 12 août 2010
31 mai 2010 à 21:47
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
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
Modifié par karirovax le 31/05/2010 à 21:56
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
sam0ray Messages postés 28 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 12 août 2010
31 mai 2010 à 22:20
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
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
31 mai 2010 à 22:41
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sam0ray Messages postés 28 Date d'inscription vendredi 21 mai 2010 Statut Membre Dernière intervention 12 août 2010
Modifié par sam0ray le 1/06/2010 à 02:18
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
karirovax Messages postés 3221 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 22 juin 2016 203
Modifié par karirovax le 2/06/2010 à 20:03
Re, bonjour

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