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

Windows Discussion :

[batch] créer un zip d'un dossier pour sauvegarde


Sujet :

Windows

  1. #1
    Membre régulier
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Points : 98
    Points
    98
    Par défaut [batch] créer un zip d'un dossier pour sauvegarde
    Bonjour à tous,
    J'aimerai réaliser une sauvegarde automatique de mes fichiers.
    Pour cela j'aimerai créer un zip. J'ai cherché sur le forum mais je n'ai rien trouvé...
    Donc tout d'abord je crée un dossier avec la date du jour ( afin d'avoir une historique des sauvegardes)
    Je copie tous mes fichiers dans ce dossier.
    Je zippe ce dossier.
    Je supprime ce dossier et je ne conserve que le ZIP.
    Voici le code que j'ai déjà écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    SETLOCAL 
    SET DIRNAME=C:\test\backup 
    FOR /F "tokens=1,2* delims=/" %%A IN ('DATE /T') DO SET DIRNAME=%DIRNAME% %%A-%%B-%%C  
    MD "%DIRNAME%" 
    ECHO "%DIRNAME%" créé.
    
    Xcopy P:\test\mon_projet "%DIRNAME%" /E /R /Y /I
    
    RMDIR "%DIRNAME%"
    Il me manque donc la partie 'zip' !
    Merci d'avance

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    regarde si ceci peux t'aider :
    echo Off
    CLS
    Echo Execute une sauvegarde des fichiers de donn‚es.
    echo.
    rem R‚pertoire Source des programmes
    Set rProg=c:\temp\backup\

    rem nom du fichier contenant les fichiers à sauvegarder
    set include=%rProg%include.txt

    rem nom du fichier contennant les fichiers à exclure
    set exclude=%rProg%exclude.txt

    rem permet une modification plus simple
    rem Volume DESTINATION
    set vD=C:

    rem R‚pertoire DESTINATION
    set rD=\temp

    rem Zip Name
    Set ZNAME=%nwusername%

    rem construction du nom
    set FullNAME=%vD%%rD%\%ZNAME%

    rem test si c'est un r‚pertoire racine
    if "%rD%"=="\" set FullNAME=%vD%%rD%%ZNAME%

    if not exist "%include%" goto noIncludeFile

    %vD%
    cd \
    md %rD%>nul
    cd %rD%
    del %FULLNAME%.ZIP

    rem parametres utilisés
    rem -add ajout de fichier/création d'archive
    rem -attrib= Hidden ,ReadOnly ,System , Archive
    rem -mask=none sauvegarde l'attribut du fichier/répertoire
    rem -eXclude=@file exclude file from archive
    rem -restaure l'attribut d'origine
    rem -max Maximun compression
    rem -rec recurse sub directory
    rem -dir=full sauvegarde le path complet dans l'archive
    rem -times= information de type last acces time ...
    rem -aft after date mm/jj/yy
    rem @fileName inclure une liste de fichier inséréee dans un fichier Ascii
    echo Sauvegarde en cours ...

    %rProg%pkzip25 -add -aft=111698 -times=all -attr=All -mask=none -dir=full -rec -max %FULLNAME% -include=@%include% -exclude=@%Exclude%

    rem ** RESTAURATION **
    rem pkzip -ext -dir=specify fullname.zip

    rem tests sur les erreur PKZIP
    IF ERRORLEVEL 255 GOTO ERR255
    IF ERRORLEVEL 29 GOTO ERR29
    IF ERRORLEVEL 28 GOTO ERR28
    IF ERRORLEVEL 26 GOTO ERR26
    IF ERRORLEVEL 23 GOTO ERR23
    IF ERRORLEVEL 22 GOTO ERR22
    IF ERRORLEVEL 21 GOTO ERR21
    IF ERRORLEVEL 20 GOTO ERR20
    IF ERRORLEVEL 19 GOTO ERR19
    IF ERRORLEVEL 18 GOTO ERR18
    IF ERRORLEVEL 17 GOTO ERR17
    IF ERRORLEVEL 16 GOTO ERR16
    IF ERRORLEVEL 15 GOTO ERR15
    IF ERRORLEVEL 14 GOTO ERR14
    IF ERRORLEVEL 13 GOTO ERR13
    IF ERRORLEVEL 12 GOTO ERR12
    IF ERRORLEVEL 11 GOTO ERR11
    IF ERRORLEVEL 10 GOTO ERR10
    IF ERRORLEVEL 9 GOTO ERR9
    IF ERRORLEVEL 8 GOTO ERR8
    IF ERRORLEVEL 7 GOTO ERR7
    IF ERRORLEVEL 6 GOTO ERR6
    IF ERRORLEVEL 5 GOTO ERR5
    IF ERRORLEVEL 4 GOTO ERR4
    IF ERRORLEVEL 3 GOTO ERR3
    IF ERRORLEVEL 2 GOTO ERR2
    IF ERRORLEVEL 1 GOTO ERR1
    IF ERRORLEVEL 0 GOTO NoPB

    :ERR1
    ECHO Bad file name or file specification.
    echo erreur Nø1
    GOTO Erreur

    :ERR2
    :ERR3
    ECHO Error in .ZIP file.
    echo erreur Nø2
    GOTO Erreur

    :ERR4
    :ERR5
    :ERR6
    :ERR7
    :ERR8
    :ERR9
    :ERR10
    :ERR11
    ECHO Insufficient Memory.
    echo erreur Nø4
    GOTO Erreur

    :ERR12
    echo No files were found to add to the .ZIP, or no files were specified for deletion
    echo erreur Nø12
    GOTO Erreur

    :ERR13
    echo File not found. The specified .ZIP file or list file was not found.
    echo erreur Nø13
    GOTO Erreur

    :ERR14
    echo Insufficient disk space for .ZIP comment or
    echo Insufficient disk space for update file or
    echo Disk Full, file XXXXX.
    echo erreur Nø14
    GOTO Erreur


    :ERR15
    ECHO .ZIP file is read-only and can not be modified.
    echo erreur Nø15
    GOTO Erreur

    :ERR16
    ECHO Bad or illegal parameters specified.
    echo erreur Nø16
    GOTO Erreur

    :ERR17
    ECHO Too many files.
    echo erreur Nø17
    GOTO Erreur

    :ERR18
    ECHO Could not open file.
    echo erreur Nø 18
    GOTO Erreur

    :ERR19
    :ERR20
    :ERR21
    :ERR22
    :ERR23
    :ERR29
    echo Insufficient Memory.
    echo erreur Nø19
    goto Erreur

    :ERR26
    echo DOS 3.2 or later needed to span disks.
    echo erreur Nø26
    goto erreur

    :ERR28
    ECHO Destination for .ZIP is same as temporary file or Source and destination
    echo is the same.
    echo erreur Nø28
    GOTO Erreur

    :ERR255
    ECHO User pressed control-c or control-break.
    echo erreur Nø255
    GOTO Erreur

    :noIncludeFile
    echo Le fichier %include% n'existe pas.
    GOTO Erreur
    :Erreur
    echo * Une erreur est survenue *
    goto fin

    :NoPB
    echo Sauvegarde termin‚ avec succ‚s.

    :FIN
    Pkzip25 est la version en ligne de commande, dispo sur le net.
    Pour l'extraction
    %rProg%pkzip25 -extract -mask=none -directories %FULLNAME% *.ini

  3. #3
    Membre régulier
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Points : 98
    Points
    98
    Par défaut
    Merci beaucoup de ta réponse.
    Cependant je n'arrive pas à le faire fonctionner
    J'ai donc téléchargé pkzip25.exe sur le web. Je l'ai placé dans le même dossier que les fichiers à zipper. J'ai également écrit 2 fichiers : include et exclude avec la liste des fichiers à zipper. Et enfin j'ai modifié ton code. Alors peut etre saurai tu pourkoi ca ne marche pas ? Je reçois l'erreur 4 : Insufficient Memory.
    merci par avance
    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    CLS 
    Echo Execute une sauvegarde des fichiers de donn‚es. 
    echo. 
    rem R‚pertoire Source des programmes 
    Set rProg=P:\test\mon_projet\
    
    rem nom du fichier contenant les fichiers à sauvegarder 
    set include=%rProg%include.txt 
    
    rem nom du fichier contennant les fichiers à exclure 
    set exclude=%rProg%exclude.txt 
    
    rem permet une modification plus simple 
    rem Volume DESTINATION 
    set vD=C: 
    
    rem R‚pertoire DESTINATION 
    set rD=\test\
    
    rem Zip Name 
    Set ZNAME=toto 
    
    rem construction du nom 
    set FullNAME=%vD%%rD%\%ZNAME% 
    
    rem test si c'est un r‚pertoire racine 
    if "%rD%"=="\" set FullNAME=%vD%%rD%%ZNAME% 
    
    if not exist "%include%" goto noIncludeFile 
    
    %vD% 
    cd \ 
    md %rD%>nul 
    cd %rD% 
    del %FULLNAME%.ZIP 
    
    rem parametres utilisés 
    rem -add ajout de fichier/création d'archive 
    rem -attrib= Hidden ,ReadOnly ,System , Archive 
    rem -mask=none sauvegarde l'attribut du fichier/répertoire 
    rem -eXclude=@file exclude file from archive 
    rem -restaure l'attribut d'origine 
    rem -max Maximun compression 
    rem -rec recurse sub directory 
    rem -dir=full sauvegarde le path complet dans l'archive 
    rem -times= information de type last acces time ... 
    rem -aft after date mm/jj/yy 
    rem @fileName inclure une liste de fichier inséréee dans un fichier Ascii 
    echo Sauvegarde en cours ... 
    
    %rProg%pkzip25 -add -aft=111698 -times=all -attr=All -mask=none -dir=full -rec -max %FULLNAME% -include=@%include% -exclude=@%Exclude% 
    
    rem ** RESTAURATION ** 
    rem pkzip -ext -dir=specify fullname.zip 
    
    rem tests sur les erreur PKZIP 
    IF ERRORLEVEL 255 GOTO ERR255 
    IF ERRORLEVEL 29 GOTO ERR29 
    IF ERRORLEVEL 28 GOTO ERR28 
    IF ERRORLEVEL 26 GOTO ERR26 
    IF ERRORLEVEL 23 GOTO ERR23 
    IF ERRORLEVEL 22 GOTO ERR22 
    IF ERRORLEVEL 21 GOTO ERR21 
    IF ERRORLEVEL 20 GOTO ERR20 
    IF ERRORLEVEL 19 GOTO ERR19 
    IF ERRORLEVEL 18 GOTO ERR18 
    IF ERRORLEVEL 17 GOTO ERR17 
    IF ERRORLEVEL 16 GOTO ERR16 
    IF ERRORLEVEL 15 GOTO ERR15 
    IF ERRORLEVEL 14 GOTO ERR14 
    IF ERRORLEVEL 13 GOTO ERR13 
    IF ERRORLEVEL 12 GOTO ERR12 
    IF ERRORLEVEL 11 GOTO ERR11 
    IF ERRORLEVEL 10 GOTO ERR10 
    IF ERRORLEVEL 9 GOTO ERR9 
    IF ERRORLEVEL 8 GOTO ERR8 
    IF ERRORLEVEL 7 GOTO ERR7 
    IF ERRORLEVEL 6 GOTO ERR6 
    IF ERRORLEVEL 5 GOTO ERR5 
    IF ERRORLEVEL 4 GOTO ERR4 
    IF ERRORLEVEL 3 GOTO ERR3 
    IF ERRORLEVEL 2 GOTO ERR2 
    IF ERRORLEVEL 1 GOTO ERR1 
    IF ERRORLEVEL 0 GOTO NoPB 
    
    :ERR1 
    ECHO Bad file name or file specification. 
    echo erreur Nø1 
    GOTO Erreur 
    
    :ERR2 
    :ERR3 
    ECHO Error in .ZIP file. 
    echo erreur Nø2 
    GOTO Erreur 
    
    :ERR4 
    :ERR5 
    :ERR6 
    :ERR7 
    :ERR8 
    :ERR9 
    :ERR10 
    :ERR11 
    ECHO Insufficient Memory. 
    echo erreur Nø4 
    GOTO Erreur 
    
    :ERR12 
    echo No files were found to add to the .ZIP, or no files were specified for deletion 
    echo erreur Nø12 
    GOTO Erreur 
    
    :ERR13 
    echo File not found. The specified .ZIP file or list file was not found. 
    echo erreur Nø13 
    GOTO Erreur 
    
    :ERR14 
    echo Insufficient disk space for .ZIP comment or 
    echo Insufficient disk space for update file or 
    echo Disk Full, file XXXXX. 
    echo erreur Nø14 
    GOTO Erreur 
    
    
    :ERR15 
    ECHO .ZIP file is read-only and can not be modified. 
    echo erreur Nø15 
    GOTO Erreur 
    
    :ERR16 
    ECHO Bad or illegal parameters specified. 
    echo erreur Nø16 
    GOTO Erreur 
    
    :ERR17 
    ECHO Too many files. 
    echo erreur Nø17 
    GOTO Erreur 
    
    :ERR18 
    ECHO Could not open file. 
    echo erreur Nø 18 
    GOTO Erreur 
    
    :ERR19 
    :ERR20 
    :ERR21 
    :ERR22 
    :ERR23 
    :ERR29 
    echo Insufficient Memory. 
    echo erreur Nø19 
    goto Erreur 
    
    :ERR26 
    echo DOS 3.2 or later needed to span disks. 
    echo erreur Nø26 
    goto erreur 
    
    :ERR28 
    ECHO Destination for .ZIP is same as temporary file or Source and destination 
    echo is the same. 
    echo erreur Nø28 
    GOTO Erreur 
    
    :ERR255 
    ECHO User pressed control-c or control-break. 
    echo erreur Nø255 
    GOTO Erreur 
    
    :noIncludeFile 
    echo Le fichier %include% n'existe pas. 
    GOTO Erreur 
    :Erreur 
    echo * Une erreur est survenue * 
    goto fin 
    
    :NoPB 
    echo Sauvegarde termin‚ avec succ‚s. 
    
    :FIN

  4. #4
    Membre régulier
    Avatar de july
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 88
    Points : 98
    Points
    98
    Par défaut
    C'est bon j'ai trouvé sur le net un autre qui est plus court et que j'arrive à faire fonctionner !!
    On ne sait jamais ça peut peut etre intéresser quelqu'un...

    Je précise qu'il compresse le répertoire courant car on a l'option path=current

    @echo off
    echo.
    echo.

    REM Archivage avec compression de l'arborescence de MonProg

    echo Compression de MonProg (Ctrl-C pour abandonner)
    echo ***********************************************
    pause
    del Bak\nom_fichier.zip
    echo on
    chemin_du_Pkzip25 -add -path=current -recurse -attributes=all -maximum chemin_destination\nom_fichier.zip *.c *.h *.mak *.bat *.txt Repertoire\*.* -exclude=*.wbk;*.csm;*.bak;*.zip
    @echo off
    REM -exclude=*.zip : ne pas ne resauver lui-meme, si *.*
    REM -password : demander un mot de passe
    REM Repertoire\*.* : un répertoire en particulier
    echo.
    echo.

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Salut, pourrait tu me donner l'adresse du site ou tu a trouver sa ?

    Et je n'arrive pas un trouver un lien ou télécharger Pkzip25 malgré l'efficacité de gooogle, tu aurait pas un lien ?

  6. #6
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    http://www.pkzipstore.com/dr/sat4/ec_MAIN.Entry10?SP=10023&PN=1&V1=371135&xid=39892&CID=0&DSP=&CUR=840&PGRP=0&CACHE_ID=0

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Bonjour Laurent Dardenne, et merci pour ce lien s’est déjà une bonne chose je peut télécharger pkzip, quoi que le version française aurait été plus pratique, enfin merci quand même.
    Par contre j’ai un peut de mal à comprendre le code.

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    désolé pour mon impolitesse précédente.
    De quel code parles-tu ?
    Pour le premier il ne s'agit que de l'utilsation de varaible d'environnement et d'appel de programme avec des paramètres.
    Pas de quoi casser 3 pattes à un canard

  9. #9
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Je parle de se 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
    17
    18
    @echo off 
    echo. 
    echo. 
    
    REM Archivage avec compression de l'arborescence de MonProg 
    
    echo Compression de MonProg (Ctrl-C pour abandonner) 
    echo *********************************************** 
    pause 
    del Bak\[b]nom_fichier[/b].zip 
    echo on 
    [b]chemin_du_Pkzip25[/b] -add -path=current -recurse -attributes=all -maximum [b]chemin_destination\nom_fichier.zip [/b]*.c *.h *.mak *.bat *.txt Repertoire\*.* -exclude=*.wbk;*.csm;*.bak;*.zip 
    @echo off 
    REM -exclude=*.zip : ne pas ne resauver lui-meme, si *.* 
    REM -password : demander un mot de passe 
    REM Repertoire\*.* : un répertoire en particulier 
    echo. 
    echo.
    Pour créer une archive zip.

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Désolé dans la foulée j'ai ajouté les balises code, l'habitude, et le code d'origine contient des balises gras [/b].
    Je l'ai replacé en l'état.
    Précise ce que tu ne comprends pas, on ne peut pas le deviner

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 054
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 054
    Points : 340
    Points
    340
    Par défaut
    Rien de méchant en faite j'avais pas compris le sens de sa "]*.c *.h *.mak *.bat *.txt" mais se sont les extension à exclure maintenant je comprend mieux, désolé
    Par contre le lien que vous m'avez donner s'est juste pour acheter PKZIP, je voudrai le tester avant pour voir si se script marche bien sur mon PC.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/01/2015, 12h15
  2. Réponses: 1
    Dernier message: 03/04/2010, 10h03
  3. créer un zip en java avec un code pour y acceder
    Par titi42 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 09/08/2009, 23h43
  4. Réponses: 3
    Dernier message: 19/07/2009, 06h46
  5. Réponses: 3
    Dernier message: 08/07/2008, 17h08

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