IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Etat d'avancement d'une copie


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 7
    Points
    7
    Par défaut Etat d'avancement d'une copie
    Bonjour

    Je travaille actuellement sur un petit batch qui me permet de copier le contenu d'une clé USB vers un dossier du disque dur
    ce que j'aimerai c'est que l'on puisse voir l'etat d'avancement de la copie ou au moins que le système travaille (des petits traits qui s'alignent, le coup du \ | / -,)

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    :: Commande batch pour sauvegarder ma clé tous les soirs
    @set ladate=%date:~6,4%%date:~3,2%%date:~0,2%
    
    
    @color 7C
    @Title "Programme de Sauvegarde XS"
    @echo		 ################################################################
    @echo		 #                                                              #  
    @echo		 #                Copie de sauvegarde en cours                  #
    @echo		 #                                                              #
    @echo		 ################################################################
    @xcopy "g:\*.*" "d:\Sauvegarde\%ladate%\" /E /Y >d:\sauvegarde\log.txt
    @echo MsgBox "Traitement terminé, la session va se fermer"> msgbox.vbs
    @cscript msgbox.vbs
    ::@Shutdown -l -f -t 00
    Auriez vous une idée qui me permettrai d'ajouter un semblant d'affichage de progression?

    PS:La commande shutdown servira plus tard, elle est commenté parceque sinon, ca va me cloturer ma session a chaque fois, relativement peu pratique

  2. #2
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut Xavstarblues et bienvenue sur le forum,

    Ajoute l'option /F à la commande xcopy, et regarde si ça répond à ta demande.

    Pour plus d'informations:

  3. #3
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ben non ce n'affichera rien par ce qu'il redirige le résultat de la commande xcopy dans un fichier log

    Il est impossible de renvoyer le résluta dans un log et de l'affiche dans l'invite de commande en même temps

    Pour la barre de prgogression y a pas ce en batch



    Pour info, ta clé pourai bien changer de lettre, pour ne pas avoir a modifier le batch si c'est la cas, tu peut mettre la batch à la racine de ta clé et mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @xcopy "%~d0\*.*" "d:\Sauvegarde\%ladate%\" /E /Y >d:\sauvegarde\log.txt
    c'est ce que je fait moi pour la sauvegarde et la mise à jour de ma clé

  4. #4
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    ben non ce n'affichera rien par ce qu'il redirige le résultat de la commande xcopy dans un fichier log
    Il est impossible de renvoyer le résluta dans un log et de l'affiche dans l'invite de commande en même temps
    Pour la barre de prgogression y a pas ce en batch
    Tout est possible, d'ailleurs si ça intéresse plus d'une personne, pourquoi ne pas transformer ce topique en projet ? Je pense que pour la plupart, ce serait une bonne source d'apprentissage que de voir exposer une démarche analytique, autrement dit «comment écrire au stylo bille lorsque l'on ne dispose que d'un crayon».

  5. #5
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    si tu trouve une solution je sui premeur

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Il "suffit" de compter les fichiers à traiter puis d'afficher une ligne de cearactères (* par exemple) en proportion de ce qui a été traité par rapport au nombre total et au nombre de caractères affichables (80 en principe)
    Non, je ne ferai pas le code

  7. #7
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    là je nage complettement

  8. #8
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    le poste de guardian est à 16h13
    le tiens kokotis à 16h14

    1 minute est-ce le temps d'une réflexion pour aboutir à une telle conclusion

    Citation Envoyé par koKoTis Voir le message
    là je nage complettement

  9. #9
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    ben c'est à dire que le vraiment rien ne me vient a l'esprit

  10. #10
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Analysant ensemble, sans critique, la proposition de Guardian,

    Il "suffit" de compter les fichiers à traiter
    Exemple : Avec la commande Dir + for je peux compter le nombre de fichiers

    proportion
    cela veut dire que je devrai faire une division avec la commande set

    afficher une ligne de caractères (*... 80 en principe
    utiliser le symbole * qui fera office de progression, et en effet la largeur par défaut de ma fenêtre est de 80 caractères.

    Es-tu plus inspiré maintenant?
    Si tu ne comprends toujours pas, rien ne t'empêche de demander à Guardian d'être plus précis ou de détailler sa proposition.

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    je n'y arrive pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    @echo off & color 0A
    
    :: http://www.developpez.net/forums/showthread.php?p=3077285#post3077285
    
    set vrRepSource=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier
    set vrRepCible=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier (2)
    
    set vrComptFch=0
    for /r "%vrRepSource%\" %%i in (*.*) do set /a vrComptFch+=1  
    
    set /a vrComptFch/=100
    
    echo %vrComptFch%
    
    ::xcopy "%vrRepCible%" "%vrRepSource%"
    
    
    pause>nul

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Excuser le hors-sujet, mais...
    Citation Envoyé par maxim_um Voir le message
    Si tu ne comprends toujours pas, rien ne t'empêche de demander à Guardian d'être plus précis ou de détailler sa proposition.
    Non mais, ça va pas la tête ?


    Il y a déjà longtemps que j'ai conseillé à Kokotis d'envisager la programmation comme évolution de tout ce qu'il a appris en Batch. Il ne semblait pas très chaud, c'est le moins que l'on puisse dire
    Mais ceci est un exemple parfait de ce qui serait infiniment plus facile à réaliser avec un "vrai langage" plutôt qu'en batch

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    moi je voulai juste essayer pour m'amuser, pour mes script splus complexe je suis passer au vbs, et peut être plutart au vb

  14. #14
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Citation Envoyé par Guardian Voir le message
    Mais ceci est un exemple parfait de ce qui serait infiniment plus facile à réaliser avec un "vrai langage" plutôt qu'en batch
    L'un n'empêche pas l'autre d'autant plus que le CMD Scripting a encore de beaux jours devant lui contrairement au VBS ou au VB pour lesquels Microsoft réserve une mort programmé.

  15. #15
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    on m'a dit que cmd va aussi mourir

  16. #16
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Citation Envoyé par koKoTis Voir le message
    on m'a dit que cmd va aussi mourir
    Non, je te l'assure.
    Il y a quelques mois déjà (ou année je sais plus), j'ai reçu une notification Microsoft qui parlait entre autres de l'avenir des interpréteurs embarqués dans les futures versions de Windows. CMD et Powershell y seront intégrés par défaut, mais Microsoft (r) Windows Based Script Host ne serait plus disponible qu'en téléchargement.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Guardian Voir le message
    Il "suffit" de compter les fichiers à traiter puis d'afficher une ligne de cearactères (* par exemple) en proportion de ce qui a été traité par rapport au nombre total et au nombre de caractères affichables (80 en principe)
    Non, je ne ferai pas le code

    Bonjour, c'est aussi ce a quoi j'ai pu penser, me manque juste les compétences :/

    Mais sinon merci a tous de votre aide, je regarde ca dans la journée, (me suis accordée un repos pascal bien mérité)

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    bonjour

    En me basant sur le code de kokotis, j'ai écris un petit bout de code que je rattacherai a mon code principal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    @pause
    @set vrRepSource=D:\Sauvegarde
    
    @set vrComptFch=0
    @for /r "%vrRepSource%\" %%i in (*.*)do @set /a vrComptFch+=1  
    
    @echo Nombre de fichier = %vrComptFch%
    
    @Pause
    set I=0
    set J=0
    Set K=%vrComptFch%
    @pause
    @FOR /L %%I IN (0,1,%%K)DO @set %%J=%%J+1|@echo "fichier %J% sur %K%"
    
    @pause
    Mais malheureusement c'a na pas le résultat escompté,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Appuyez sur une touche pour continuer...
    Nombre de fichier = 911
    Appuyez sur une touche pour continuer...
    
    D:\Xavier>set I=0
    
    D:\Xavier>set J=0
    
    D:\Xavier>Set K=911
    Appuyez sur une touche pour continuer...
    "fichier 0 sur 911"
    Appuyez sur une touche pour continuer...
    J'interprète peut être mal la commande FOR (la syntaxe de la boucle?)
    Je voudrais que pour chaque fichier trouvé, ajouter un increment a %J% et ensuite afficher "fichier %J%/%K%", dans un premier temps ca devrait me donner:
    fichier 1/991
    fichier 2/991
    etc.... on verra âpres pour faire autrement

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 30
    Points : 7
    Points
    7
    Par défaut
    J'ai un peu travaillé de mon coté et je suis arrivé a cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @pause
    @set vrRepSource=D:\Outils
    @set vrComptFch=0
    @for /r "%vrRepSource%\" %%i in (*.*)do @set /a vrComptFch+=1  
    
    @echo Nombre de fichier = %vrComptFch%
    
    @Pause
    set I=0
    set J=0
    Set K=%vrComptFch%
    
    @pause
    @FOR /L %%I IN (1,1,%K%)DO @(
     @set /a J+=1
     @echo Fichier %J% sur %K%
    )
    echo %J%
    @pause
    Mais le résultat n'est pas celui escompté....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Appuyez sur une touche pour continuer...
    Nombre de fichier = 9
    Appuyez sur une touche pour continuer...
    
    D:\Xavier>set I=0
    
    D:\Xavier>set J=0
    
    D:\Xavier>Set K=9
    Appuyez sur une touche pour continuer...
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    Fichier 0 sur 9
    
    D:\Xavier>echo 9
    9
    Appuyez sur une touche pour continuer...
    Il semblerait que ma variable %J% ne soit mis a jour qu'au sortir de la boucle, cela vous semble t'il possible?

  20. #20
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    il faut utiliser l'expension retader des variable d'environnement:
    @pause
    @set vrRepSource=D:\Outils
    @set vrComptFch=0
    @for /r "%vrRepSource%\" %%i in (*.*)do @set /a vrComptFch+=1

    @echo Nombre de fichier = %vrComptFch%

    @Pause
    set I=0
    set J=0
    Set K=%vrComptFch%

    @pause
    setlocal enabledelayedexpansion
    @FOR /L %%I IN (1,1,%K%)DO @(
    @set /a J+=1
    @echo Fichier !J! sur %K%
    )
    endlocal
    echo %J%
    @pause

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/05/2013, 11h27
  2. [JProgressBar] Suivre l'avancement d'une copie
    Par Sylver--- dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 04/07/2007, 11h56
  3. [Avancé] Recopie une session dans un autre client
    Par gregoun dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 29/06/2004, 12h11
  4. Copier et afficher une copie d'ecran
    Par Bobx dans le forum Langage
    Réponses: 6
    Dernier message: 02/08/2002, 22h20
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo