Script pour copie automatique de fichiers PC vers USB

Résolu
7e0o Messages postés 40 Statut Membre -  
7e0o Messages postés 40 Statut Membre -
Bonjour tout le monde,

Je suis à la recherche d'un script pour réaliser la copie des fichiers d'un répertoire automatiquement tous les 15 minutes, l'objectif c'est d'avoir toujours les fichiers du jour sur une clé USB et les effacer sur le PC.

Quelqu'un aurait une petite astuce, ou un petit code a montré pour m'aider?

Merci par avance pour votre aide.
Meilleures salutations

3 réponses

  1. barnabe0057 Messages postés 14329 Date d'inscription   Statut Contributeur Dernière intervention   4 930
     
    Bonjour,

    J'ai crée un script qui permet de synchroniser 2 dossiers.

    1) Tout d'abord tu dois copier le script HASHSUM.BAT disponible ici :
    https://www.dostips.com/forum/viewtopic.php?t=7592

    2) Ensuite il faudra convertir HASHSUM.BAT en HASHSUM.EXE grâce à ce logiciel :
    https://www.commentcamarche.net/telecharger/developpement/4555-bat-to-exe-converter/

    3) Ensuite tu copies HASHSUM.EXE dans C:\Windows\System32

    4) Ensuite tu peux utiliser mon script :
    @echo off
    title Synchronisation de dossiers
    mode con: cols=75 lines=45
    Setlocal enableextensions enabledelayedexpansion
    color 0A

    :: ---------------------------
    :: on définit les variables
    :: ---------------------------

    set source=%USERPROFILE%\Desktop\Titi\
    set destination=D:\Toto
    set liste=%TEMP%\empreintes.md5

    :: --------------------------------------
    :: on clone l'arborescence des dossiers
    :: --------------------------------------

    cd /d %source% || exit /B 1

    for /f "delims=" %%A in ('dir /b /ad /s') do (

    set "str=%%~A"
    for /f "tokens=1,2 delims=µ" %%W in ("!str:%source:~3%=µ!") do (if not exist "%destination%\%%~X" (mkdir "%destination%\%%~X"))

    )

    :: ---------------------------------------------------------------------
    :: on calcule et on stocke l'empreinte des fichiers de la destination
    :: ---------------------------------------------------------------------

    echo. > "%liste%"

    (hashsum.exe /a MD5 /p "%destination%" /s *.*) >> "%liste%"

    :: --------------------------------------------------------
    :: on calcule l'empreinte de chaque fichier de la source
    :: --------------------------------------------------------

    for /f "delims=" %%E in ('2^>nul dir /b /a-d /s "*.*"') do (

    for /f "tokens=1" %%H in ('hashsum.exe /a MD5 /p "%%~dpE" "%%~nxE"') do (call :comparaison "%%~E" "%%~H")

    )

    echo. & pause
    endlocal
    exit /B

    :: -------------------------------------------
    :: fonction de synchronisation des fichiers
    :: -------------------------------------------

    :comparaison

    set /a doublon=0

    for /f "usebackq skip=1 tokens=1" %%L in ("%liste%") do (if "%%~L"=="%~2" (set /a doublon=1))

    if !doublon! EQU 0 (

    set "rts=%~1"
    for /f "tokens=1,2 delims=µ" %%W in ("!rts:%source:~3%=µ!") do (>nul copy /Y "%~1" "%destination%\%%~X")
    echo. & echo ### OK ### %~nx1

    ) else (echo. & echo ### -- ### %~nx1)

    goto :eof

    rem

    N'oublie pas de modifier les variables source et destination au début du script.

    Pour lancer le script tous les 15 minutes tu peux créer une tâche planifiée.

    edit : j'ai oublié d'effacer les fichiers de la source à la fin, je m'en occuperai demain soir.


    “L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”
    0
    1. 7e0o Messages postés 40 Statut Membre
       
      Bonjour barnabe,

      Merci beaucoup pour ton aide .

      Je vais tester tout cela.

      Bonne journée.
      0