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 :

Inclure une commande Progress bar dans un fichier batch de sauvegarde avec xcopy


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Inclure une commande Progress bar dans un fichier batch de sauvegarde avec xcopy
    Je souhaiterai inclure la commande progressbar téléchargée précédemment dans mon fichier "backups.bat" qui me sauvegarde mes fichiers à la sortie de windows.
    Je ne sais pas où il faut l'insérer dans la ligne de commande de mon script.

    voici mon .batch

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    @ECHO.
    @echo.	"OPERATION DE SAUVEGARDE AVANT D'ETEINDRE L'ORDINATEUR" ;
    @echo.		" SAUVEGARDE DE MES FICHIERS SUR UN AUTRE SUPPORT"
    
    rem  ***** mise en place des variables pour le fichier log (si créé) *****
    
    set data=Copie du: %Date% a %Time%
    
    rem *****  En-tête  ******
    
    echo           ************************************
    echo           *                                   *
    echo           *    Programme de sauvegarde        *
    echo           *                                   *
    echo           ************************************
    
    rem ***** Début du programme *****
    
    :E
    xcopy /K "C:\Program Files (x86)\RocketDock\Icons\*.ico" "E:\SAV_FIC-MARC\Users\Icons & PNG\icons\ico" /H/E/D/C/I/R/V/Y/J/Q
    
    xcopy /k "C:\Program Files (x86)\RocketDock\Icons\*.png" "E:\SAV_FIC-MARC\Users\Icons & PNG\icons\png" /H/E/D/C/I/R/V/Y/J/Q
    
    xcopy /K "C:\Program Files (x86)\RocketDock\Skins" "E:\SAV_FIC-MARC\Users\Icons & PNG\Skins" /H/E/D/C/I/R/V/Y/J/Q
    
    xcopy /K "D:\users\Marc" "E:\SAV_FIC-MARC\Users\Marc" /H/E/D/C/I/R/V/Y/Q/J /exclude:liste.txt
    
    @echo.
    @echo.	 "La Copie est terminee!"
    @echo.
    goto end
    
    :end
    C:\Windows\SysWOW64\shutdown.exe /s /t 00

    Merci

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    La commande de la progressbar est une commande externe ?? si oui postez son lien de téléchargement ?
    Sinon, moi personnellement j'utilise un Vbscript qui utilise la commande XCopy avec génération d'une progressbar en HTA
    XCopyScript.vbs

  3. #3
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ta réponse, mais pour moi qui suit un tatonneur (novice) dans la programmation c'est un peu compliqué.
    je cherche quelque chose de simple pour afficher une progressbar, surtout que mon petit batch tout simple fonctionne bien.
    C'est juste pour l'agrémenter d'une barre d'avancement.
    Cordialement

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Je présume que vous voulez faire quelque chose comme celle dans cette image :[CENTER]

  5. #5
    Candidat au Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Génial, cela me conviendrait parfaitement.
    Un petit coup de main svp


  6. #6
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut [BAT] ProgressBar
    Voilà une solution un peu moins lourde pour ton cas.
    Renomme ton BAT de copy en -> genere.bat (important !!!)

    Et cree StartCopy.bat :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    :::Waiting Progress By SachaDee
    :::www.Developpez.com
    
    @Echo Off
    mode con: cols=120 lines=7
    color 1a
    setlocal EnableDelayedExpansion
    
    if exist fin.val del fin.val
    start /min genere.bat ^& echo.^>fin.val ^& exit
    
    cls
    set graph=²°
    echo traitement En cours veuillez patienter...
    echo.
    echo    %graph%
    
    
    :affiche
    >nul PING localhost -n 2 -w 1000
    cls
    if exist fin.val goto:termine 
    set graph=²!graph!
    echo traitement En cours veuillez patienter...
    echo.
    echo    %graph%
    
    goto :affiche
    
    :termine
    endlocal
    echo Traitement termin‚
    pause
    exit
    Ensuite appel StartCopy.bat

    Fait quelque test et adapte un peu.



    Il y a d'autres possibilité grâce à la géniale commande externe AffPng.exe

    qui va donner ceçi : http://screencast.com/t/nclbdnwCeDy
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Testez cet exemple et essayez d'intégrer après votre script la dedans
    MyWaitBar.bat

  8. #8
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Points : 285
    Points
    285
    Par défaut
    Hello

    le script (suivant) est génial !

    Par contre je n'arrive pas à comprendre la notion d'exclusion de type de fichiers.....
    Là si je comprends bien avec MyExcludeFile = "echo .mp3
    Tous les fichiers mp3 sont exclus....

    Par contre quand, je fais le test chez moi avec divers fichiers (rar, jpeg....) rien n'est copier....

    est-ce normal ?

    Bonne journée
    Seb

    ps : comme vous avez pu le voir dans mes posts précédents, je débute en prog ....

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    Option Explicit
    Dim sSrc,sDest,MyCmd,Temp,Titre,MsgTitre,MsgAttente,Copyright,oExec,ws,LogTmpFile,LogFile,MyExcludeFile
    Copyright = "[ XcopyScript © Hackoo Crackoo © 2014 ]"
    Set ws = CreateObject("WScript.Shell")
    Temp = ws.ExpandEnvironmentStrings("%Temp%")
    sSrc = "C:\Downloads"
    sDest = "E:\XCopytest"
    LogTmpFile = "MyTmpXCopyLog.txt"
    LogFile = "MyXCopyLog.txt"
    MyExcludeFile = "echo .mp3 > MyExcludeFile.txt" 'This file must be created and contains .mp3 to exclude in the first line
    '**************************************************************************************************************************
    'Remark : You can also add some other filters like this :
    'for example, if you want to exculde all .exe files with all .mp3 files, you should write this variable like this :
    'MyExcludeFile = "echo .mp3 > MyExcludeFile.txt & echo .exe >> MyExcludeFile.txt"
    'and so on .....
    '**************************************************************************************************************************
    Call Executer(MyExcludeFile,0)
    MyCmd = "XCopy" & " " & sSrc & " " & sDest & " /F /I /E /Y /EXCLUDE:MyExcludeFile.txt > " & LogTmpFile &_
    " & cmd /U /C Type " & LogTmpFile & " > " & LogFile & " & Del " & LogTmpFile & " & Del MyExcludeFile.txt"
    Titre = "Copying files " & Copyright
    MsgAttente = "Copying files from <font color=Yellow>" & DblQuote(sSrc) & " to " & DblQuote(sDest) & " </font>  . . . ."
    Call CreateProgressBar(Titre,MsgAttente)
    Call LancerProgressBar()
    Call Pause(2)
    Call Executer(MyCmd,0)
    FermerProgressBar()
    ws.run LogFile
    '****************************************************************************************************
    Function Executer(StrCmd,Console)
            Dim ws,MyCmd,Resultat
            Set ws = CreateObject("wscript.Shell")
    'La valeur 0 pour cacher la console MS-DOS
            If Console = 0 Then
                    MyCmd = "CMD /C " & StrCmd & " "
                    Resultat = ws.run(MyCmd,Console,True)
                    If Resultat = 0 Then
                            'MsgBox "Success"
                    Else
                            MsgBox "Une erreur inconnue est survenue !",16,"Une erreur inconnue est survenue !"
                    End If
            End If
    'La valeur 1 pour montrer la console MS-DOS
            If Console = 1 Then
                    MyCmd = "CMD /K " & StrCmd & " "
                    Resultat = ws.run(MyCmd,Console,False)
                    If Resultat = 0 Then
                            'MsgBox "Success"
                    Else
                            MsgBox "Une erreur inconnue est survenue !",16,"Une erreur inconnue est survenue !"
                    End If
            End If
            Executer = Resultat
    End Function
    '****************************************************************************************************
    Sub CreateProgressBar(Titre,MsgAttente)
            Dim ws,fso,f,f2,ts,ts2,Ligne,i,fread,LireTout,NbLigneTotal,Temp,PathOutPutHTML,fhta,oExec
            Set ws = CreateObject("wscript.Shell")
            Set fso = CreateObject("Scripting.FileSystemObject")
            Temp = WS.ExpandEnvironmentStrings("%Temp%")
            PathOutPutHTML = Temp & "\Barre.hta"
            Set fhta = fso.OpenTextFile(PathOutPutHTML,2,True)
            fhta.WriteLine "<HTML>"
            fhta.WriteLine "<HEAD>"
            fhta.WriteLine "<Title>  " & Titre & "</Title>"
            fhta.WriteLine "<HTA:APPLICATION"
            fhta.WriteLine "ICON = ""magnify.exe"" "
            fhta.WriteLine "BORDER=""THIN"" "
            fhta.WriteLine "INNERBORDER=""NO"" "
            fhta.WriteLine "MAXIMIZEBUTTON=""NO"" "
            fhta.WriteLine "MINIMIZEBUTTON=""NO"" "
            fhta.WriteLine "SCROLL=""NO"" "
            fhta.WriteLine "SYSMENU=""NO"" "
            fhta.WriteLine "SELECTION=""NO"" "
            fhta.WriteLine "SINGLEINSTANCE=""YES"">"
            fhta.WriteLine "</HEAD>"
            fhta.WriteLine "<BODY text=""white""><CENTER><DIV><SPAN ID=""ProgressBar""></SPAN>"
            fhta.WriteLine "<span><marquee DIRECTION=""LEFT"" SCROLLAMOUNT=""3"" BEHAVIOR=ALTERNATE><font face=""Comic sans MS"">" & MsgAttente &"</font></marquee></span></DIV></CENTER></BODY></HTML>"
            fhta.WriteLine "<SCRIPT LANGUAGE=""VBScript""> "
            fhta.WriteLine "Set ws = CreateObject(""wscript.Shell"")"
            fhta.WriteLine "Temp = WS.ExpandEnvironmentStrings(""%Temp%"")"
            fhta.WriteLine "Sub window_onload()"
            fhta.WriteLine "    CenterWindow 480,90"
            fhta.WriteLine "    Self.document.bgColor = ""DarkOrange"" "
            fhta.WriteLine " End Sub"
            fhta.WriteLine " Sub CenterWindow(x,y)"
            fhta.WriteLine "    Dim iLeft,itop"
            fhta.WriteLine "    window.resizeTo x,y"
            fhta.WriteLine "    iLeft = window.screen.availWidth/2 - x/2"
            fhta.WriteLine "    itop = window.screen.availHeight/2 - y/2"
            fhta.WriteLine "    window.moveTo ileft,itop"
            fhta.WriteLine "End Sub"
            fhta.WriteLine "</script>"
            fhta.close
    End Sub
    '**********************************************************************************************
    Sub LancerProgressBar()
            Set oExec = Ws.Exec("mshta.exe " & Temp & "\Barre.hta")
    End Sub
    '**********************************************************************************************
    Sub FermerProgressBar()
            oExec.Terminate
    End Sub
    '**********************************************************************************************
    Sub Pause(NSeconds)
            Wscript.Sleep(NSeconds*1000)
    End Sub  
    '**********************************************************************************************
    Function DblQuote(Str)
            DblQuote = Chr(34) & Str & Chr(34)
    End Function
    '**********************************************************************************************
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  9. #9
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par GADENSEB Voir le message
    Par contre quand, je fais le test chez moi avec divers fichiers (rar, jpeg....) rien n'est copier....
    est-ce normal ?

    Tu veux dire tu exclues .rar et .jpeg ??
    http://ss64.com/nt/xcopy.html

  10. #10
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Points : 285
    Points
    285
    Par défaut
    bien au contraire !!!
    all files, pas d'exclusions

    Pour faire de la synchro entre dossiers

    Du coup, je me dis que ce code est adapté à ce que je recherche
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  11. #11
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par GADENSEB Voir le message
    bien au contraire !!!
    all files, pas d'exclusions
    Pour faire de la synchro entre dossiers
    Du coup, je me dis que ce code est adapté à ce que je recherche
    Tu veux dire une sauvegarde incrémentiel ? si un nouveau fichier se trouve dans le dossier source il le copie automatiquement dans le dossier destination pour la synchro ou bien s'il y a une modification du fichier il le met à jour c'est ça ?

  12. #12
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Points : 285
    Points
    285
    Par défaut
    Citation Envoyé par hackoofr Voir le message
    Tu veux dire une sauvegarde incrémentiel ? si un nouveau fichier se trouve dans le dossier source il le copie automatiquement dans le dossier destination pour la synchro ou bien s'il y a une modification du fichier il le met à jour c'est ça ?
    Oui propagation des modifications/suppression/création : en fonction de la date de création/modification
    J'ai le logiciel allwaysync qui me fait cela mais j'aimerais passer sur une solution plus légère qu'un logiciel

    D'ou la notion de script xcopy (si je comprends tout bien)


    Pour info, mon organisation pc se compose comme cela

    - 1 Pc portable
    - 1 tour qui me sert de serveur
    - 1 dd externe qui me sert à transporter mes données
    - 7 dossiers synchronisés

    Le tout se synchronise à la connexion de mon dd externe sur mon pc portable

    C'est un peu lourd mais c'est le meilleur moyen de backup/synchro que j'ai trouvé jusqu’à présent

    Merci
    Bonne aprem
    Seb
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  13. #13
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut
    Citation Envoyé par GADENSEB Voir le message
    Oui propagation des modifications/suppression/création : en fonction de la date de création/modification
    Dans ce cas essayez avec le paramètre /D

  14. #14
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    Mars 2014
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2014
    Messages : 569
    Points : 285
    Points
    285
    Par défaut
    oK
    je vais créer un post pour cela pour pas mélanger avec le sujet principal :-)

    Merci
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  15. #15
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    Une petite correction du code :

    Ajouter le paramètre /f dans le taskkill. Sinon la barre d'attente ne se ferme pas. Faut que je corrige ça dans mon tuto

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    :test-fin
        if exist %tmp%\switch.txt (taskkill /f /im mshta.exe
                                   cls&echo TRAITEMENT TERMINE AVEC SUCCES&exit /b)
    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. inclure une ligne de données dans un fichier csv
    Par alvine18 dans le forum Langage
    Réponses: 5
    Dernier message: 08/06/2012, 14h40
  2. Réponses: 12
    Dernier message: 24/06/2009, 10h01
  3. Réponses: 7
    Dernier message: 06/01/2007, 20h16
  4. [Mail] comment inclure une commande dans une variable
    Par pierrot10 dans le forum Langage
    Réponses: 8
    Dernier message: 27/04/2006, 20h17
  5. progress bar dans une status bar ?
    Par raggadoll dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/11/2005, 15h17

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