Galactic Civilizations 3
Afficher une barre de progression dans un script batch

Afficher une barre de progression dans un script batch

Catégorie: Programmation.
Posté par le 04/03/2013.
Dernière mise à jour le 05/11/2013.

Description

Dans ce tutoriel, vous apprendrez comment afficher une barre de progression dans un script batch sous windows.

Introduction

Ce tutoriel ne nécessite aucun prérequis, il peut être testé sous Windows XP, Windows Vista, Windows 7 ou Windows 8.Un simple éditeur de texte est nécessaire pour suivre ce tutoriel. Par exemple, Bloc-notes.

Afficher une barre de progression simple

Notre première barre de progression consistera simplement à afficher une succession de points « . ». Pour ce faire nous allons utiliser la commande « echo|set /p » pour afficher un point sans passer à la ligne.

Voici un exemple d'utilisation de cette commande:

@echo off
set FINISH=0
set i=0
echo.
:NEW_STEP
REM On affiche un point sans passer à la ligne
echo|set /p=.

REM Opération à effectuer
ping 123.45.67.89 -n 1 -w 500 > nul

set /a i = i + 1
if /i %i% leq 10 goto NEW_STEP
echo.
pause

Ce script exécute 10 fois la commande « ping 123.45.67.89 -n 1 -w 500 > nul » et rajoute à chaque fois un point à la barre de progression.

Voici un autre exemple d'affichage de la barre de progression:

@echo off
REM Opération à effectuer
REM ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP  

PAUSE>NUL
goto :EOF
:NEW_STEP
REM On affiche un point sans passer à la ligne
echo|set /p=.
exit /b

Ici, à chaque fois que l'on appellera la commande « call :NEW_STEP » un point sera rajouté à la barre de progression.

NB: La commande call permet d'appeler un autre script batch sans arrêter l'exécution du script courant.

Afficher une barre de progression avec un pourcentage de progression

Nous allons maintenant afficher la même de barre de progression qu'au point précédent, mais en plus, nous allons afficher le pourcentage d'avancement du programme dans le titre de la fenêtre.

Pour ce faire, nous allons utiliser la commande « title ».

title permet de modifier le titre de la fenêtre d'exécution du script.

Voici un exemple d'utilisation de cette commande:

@echo off
REM Opération à effectuer
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 30
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 60
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 100

PAUSE>NUL
goto :EOF
:NEW_STEP
REM On affiche un point sans passer à la ligne
echo|set /p=.
title %1%%% Completed
exit /b

Ce script appelle 3 fois « call :NEW_STEP » en donnant le pourcentage de progression. Celui-ci est alors affiché dans le titre de la fenêtre.

Afficher une barre de progression complète

Nous allons maintenant améliorer notre script afin qu'il affiche une vraie barre de progression qui change sur la même ligne.

La barre de progression ressemblera à ça :

[####    ]

Voici le script de cette barre de progression:

@echo off
setlocal enableextensions enabledelayedexpansion
for /f %%a in ('copy /Z "%~dpf0" nul') do set "CR=%%a"

echo Ma barre de progression:
REM Opération à effectuer
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 30
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 60
ping 123.45.67.89 -n 1 -w 500 > nul
call :NEW_STEP 100

PAUSE>NUL
goto :EOF
:NEW_STEP

set pourcentage=%1%

REM On dessine la barre de progression
set "tmp=["
:UP_BAR
if /i !i! leq !pourcentage! (
set "tmp=!tmp!#"
) else (
set "tmp=!tmp! "
)
set /a i = i + 5
if /i !i! leq 100 goto :UP_BAR
set "tmp=!tmp!]"

REM On imprime la barre de progression
if !pourcentage! equ 100 (
    echo !tmp!
) else (
    <nul set /p ".=!tmp!!CR!"
)

title !pourcentage!%% Completed
exit /b
endlocal

Ce script appelle 3 fois « call :NEW_STEP » en donnant le pourcentage de progression. Celui-ci est alors affiché dans le titre de la fenêtre et la barre de progression apparaît dans la fenêtre.

Tu as aimé ce tutoriel ?
Aide nous à améliorer le site ! Deviens partenaire officiel ou suis nous sur facebook !

Commentaires[0]

Tu as aimé ce tutoriel ? Alors partage-le avec tes amis !
Partager sur Facebook Partager sur Twitter Partager sur Myspace Partager sur Stumbleupon Soumettre sur Reddit Partager sur Digg Ajouter à vos favoris Technorati Ajouter à vos favoris Live Ajouter à vos favoris Google Ajouter sur vos favoris Yahoo Voir le flux rss

Mots Clés: barre de progression batch ligne de commande Programmation script windows

Veve :
(11/04/2013 - 17:19:44)
il faut juste mettre "sudo" à la place de "su" pour exécuter la commande en root

Veve :
(11/04/2013 - 17:18:56)
Salut tu peux aller lire ce tutoriel: http://www.tutorielsenfolie.com/tutoriels-63-installation-configuration-opennebula.html Il fonctionne aussi sous ubuntu

safa.souissi4 :
(10/04/2013 - 20:58:13)
s'il vous plait c urgent :(

safa.souissi4 :
(10/04/2013 - 20:56:25)
bonsoir,je cherche un tutos pour installer opennebula.org sous ubuntu 12.

Veve :
(18/03/2013 - 20:07:49)
oui, j'essaye de voir d'ou viens le problème.

sonde :
(18/03/2013 - 13:29:57)
re merci (j apprend un peu plus) je crois que j ai trouver pourquoi je peu pas poster si il y a ligne code impossible de poster lol

Veve :
(17/03/2013 - 21:34:49)
Salut, j'espère que ça t'a aidé.

sonde :
(17/03/2013 - 09:59:02)
pour ton aide

sonde :
(17/03/2013 - 09:57:36)
slt Veve impossible de laisser com

sonde :
(17/03/2013 - 09:56:55)
??

Demi-dieu :
(15/03/2013 - 18:41:13)
salut ^^

sonde :
(13/03/2013 - 14:49:35)
un petit coucou

Tanamoureuse :
(29/09/2011 - 06:11:08)
Je t'aime

Faire un don

Ma Publicité ici


Faire un don