Xcopy AVEC barre de progression (batch)

Neizhan Messages postés 2 Statut Membre -  
barnabe0057 Messages postés 17074 Statut Contributeur -
Bonjour,

Je souhaiterai avoir une barre de progression pour une commande Xcopy (fichier bat).
J'ai trouvé cette "progress bar" qui correspond à mes attentes :


set NB_BAR=0
:UP_BAR
cls
set /a FULL = FULL + 1
set BAR=%BAR%Û
set /a NB_BAR = NB_BAR + 2
echo.
echo.
echo encours: %NB_BAR%%%
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo %BAR%
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
if %FULL%==50 goto :END_BAR
@ping localhost -n 1 >nul
Xcopy /Y "Dossier1" "Dossier2" /e /i
goto :UP_BAR
:END_BAR


Cependant, il y a un gros problème :
Dans un test de copie en pur Xcopy des fichiers sont copiés en 10s.
Dans ce même test avec la barre de progression, cela prend beaucoup, beaucoup plus de temps (mais la barre fonctionne).
J'ai remarqué en fait que le Xcopy est exécuté plusieurs fois pour faire avancer la barre (d'où la durée plus importante et l'inutilité de ce procédé).
Y a t-il un moyen de remédier à ce problème ?

Merci
    • A quoi sert la ligne "@ping localhost -n 1 >nul" car avec ou sans, cela ne change rien.
A voir également:

2 réponses

barnabe0057 Messages postés 17074 Statut Contributeur 4 925
 
Bonjour,

@ping localhost -n 1 >nul
correspond à une pseudo-temporisation d'1 seconde.
0
barnabe0057 Messages postés 17074 Statut Contributeur 4 925
 
Effectivement le XCOPY était exécuté plusieurs fois, j'ai résolu le problème :

@echo off
set NB_BAR=0
:UP_BAR
cls
set /a FULL = FULL + 1
set BAR=%BAR%Û
set /a NB_BAR = NB_BAR + 2
echo.
echo.
echo Progression : %NB_BAR%%%
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo %BAR%
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo.
if %FULL%==50 (goto :END_BAR)
@ping localhost -n 1 >nul
if %FULL% GTR 1 (goto :UP_BAR)
xcopy /Y "Dossier1" "Dossier2" /e /i
goto :UP_BAR
:END_BAR
0
barnabe0057 Messages postés 17074 Statut Contributeur 4 925
 
C'est très joli mais ça ne peut pas fonctionner, dommage.
0
Neizhan Messages postés 2 Statut Membre
 
Bonjour,

Merci Barnabe0057 pour ta participation.

Oui en effet, le dernier code fonctionne mieux, cependant cela semble être une illusion ce genre de barre. Dans le code on commence avec 2% et fini à 100% uniquement lorsque tout est copié (pas d'évolution). Je suis d'accord, c'est beau mais inutile.

Y aurait-il (toujours avec Xcopy), le moyen d'afficher un espèce de sablier ou quelque chose qui indique que la fenêtre est en action (hormis les lignes de copie) ?
Cela pourrait me suffire...

Merci encore !
0
barnabe0057 Messages postés 17074 Statut Contributeur 4 925 > Neizhan Messages postés 2 Statut Membre
 
Pas à ma connaissance.
0