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 :

Script de déplacement de fichier et archivage [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé 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
    Par défaut Script de déplacement de fichier et archivage
    Bonjour le Forum,
    J'ai une question toute bête

    J'ai un dossier "A" qui a comme sous-dossiers :
    -"a1"
    -"a2"
    -"a3"
    - "Ok Archivé"

    je voudrais copiés les fichiers nouvellement arrivés dans ce dossier A et ses-sous dossiers (sauf "OK Archivé") vers un autre dossier appelé B

    puis replacer ces fichiers copiés dans les mm sous-dossiers "A1"..... dans "ok archivé" qui est l'archive de sauvegarde de "A"

    Je ne sais pas si j'ai étais clair

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Bonjour,

    Voilà un exemple :

    Code Batch : 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 off
    setlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\Dossier A"
    set "destination=Q:\Dossier B"
    set "archivage=%source%\Ok archivé"
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
    if not exist "%archivage%" (mkdir "%archivage%")
     
    for /r %%A in (*.*) do (
     
    	echo.
    	xcopy /Y "%%~A" "%destination%" && call :fonction "%%~A"
     
    )
     
    pause
    exit /b 0
     
    :fonction
     
    set "fichier=%~dp1"
     
    echo.!fichier! | find "%archivage%" >nul || (
    	set "archive=!fichier:%source%=%archivage%!"
    	echo.
    	xcopy /Y %1 "!archive!"
    )
     
    goto :eof

    N'oublie pas de modifier la variable source et la variable destination en début de script.

  3. #3
    Membre éclairé 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
    Par défaut
    Hello
    Merci à toi.
    Je teste cela ce soir

  4. #4
    Membre éclairé 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
    Par défaut
    Bonjour,
    Bon j'ai du me planter quelque part…….
    L'adresse source : D:\PHOTOS\ADO- SAUVEGARDE TELEPHONE
    L'adresse destination : D:\PHOTOS\SGA - A TRIER

    Il me signale une erreur sur la première ligne

    Où je me suis planté ?

    Code Batch : 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 off
    setlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\PHOTOS\ADO - SAUVEGARDE TELEPHONE"
    set "destination=D:\PHOTOS\SGA  -  A  TRIER"
    set "archivage=%source%\Ok archivé"
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
    if not exist "%archivage%" (mkdir "%archivage%")
     
    for /r %%A in (*.*) do (
     
     echo.
     xcopy /Y "%%~A" "%destination%" && call :fonction "%%~A"
     
    )
     
    pause
    exit /b 0
     
    :fonction
     
    set "fichier=%~dp1"
     
    echo.!fichier! | find "%archivage%" >nul || (
     set "archive=!fichier:%source%=%archivage%!"
     echo.
     xcopy /Y %1 "!archive!"
    )
     
    goto :eof

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Par défaut
    Bonjour,

    Question : avec quoi tu lances ce script?

    Bonne journée.

  6. #6
    Membre éclairé 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
    Par défaut
    Hello
    J'ai fais un .VBS

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Octobre 2019
    Messages : 60
    Par défaut
    Citation Envoyé par GADENSEB Voir le message
    Hello
    J'ai fais un .VBS
    je ne suis pas expert, mais il me semble que ce script est un .BAT

  8. #8
    Membre éclairé 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
    Par défaut
    Ok
    Je teste ce soir.
    Merci à toi

  9. #9
    Membre éclairé 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
    Par défaut
    Hello
    J'ai testé le script et cela semble fonctionné.
    Par contre j'ai eu un beug a cause des accent "ok archivé" et cela à resync ce dossier en faisant un dossier "ok achiv@"
    Du coup j'ai transformé le dossier en "OK ARCHIVE"
    voici la copie d'écran du dossier concerné
    Nom : Capture.PNG
Affichages : 1337
Taille : 13,7 Ko
    Est-ce que ton code fonctionne sur ce schéma ?

    Est-ce possible de rajouter un critère de transformation dans le dossier de destination ?
    --> Créer un dossier avec la date par regroupement de fichiers, a 99% des photos.

    --> Si j'ai un des photos qui contient, par titre, de fichiers 20200321 cela créer un dossier avec ts les fichiers avec cette date/nom de fichier vers un dossier "2020 03 21"

    Merci à toi, j’espère que tu vas bien dans cette période compliquée.

  10. #10
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut tout va bien pour moi merci.

    Pas de problème mon code est compatible avec ton arborescence.

    Pour le critère avec la date des fichiers, il faudrait que je sache comment sont nommées les photos actuellement.
    Est-ce qu'elles sont toutes nommées de la même façon ?

  11. #11
    Membre éclairé 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
    Par défaut
    Bonjour
    Merci de ton aide
    voici le format des différents fichiers. je pense qu'il ne faut tenir compte que de 2019011 au centre du nom de fichier par exemple

    Nom : Capture.PNG
Affichages : 1306
Taille : 2,8 Ko

    Concernant l'atterrissage dans un dossier de type "2019 09 11", pourrait on dire que si le dossier existe déjà, les nouvelles photos seront importées dans ce mm dossier sans en créer un nouveau ?
    Merci à toi

  12. #12
    Membre éclairé 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
    Par défaut
    Hello
    As-tu une idée pour ce petit programme ? :-)

  13. #13
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Slt oui j'ai une idée, je te recontacte rapidement, j'étais occupé sur un projet ces derniers jours.

  14. #14
    Membre éclairé 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
    Par défaut
    Hello pas de soucis !
    Bonne am à toi

  15. #15
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Code Batch : 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
    @echo off
    setlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\PHOTOS\ADO - SAUVEGARDE TELEPHONE"
    set "destination=D:\PHOTOS\SGA  -  A  TRIER"
    set "archivage=%source%\OK ARCHIVE"
     
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
    if not exist "%archivage%" (mkdir "%archivage%")
     
    for /r %%A in (*.*) do (
    	for /f "tokens=2 delims=_-" %%E in ("%%~nA") do (
     		echo.%%E | findstr /R "[0-9][0-9][0-9][0-9][0-9][0-9]" >nul && (
    			set "dossier=%%E"
    			set "dossier=!dossier:~0,4! !dossier:~4,2! !dossier:~6,2!"
    			if not exist "%destination%\!dossier!" (mkdir "%destination%\!dossier!")
    			echo.
    			xcopy /Y "%%~A" "%destination%\!dossier!" && call :fonction "%%~A"
    		)
    	) 
    )
     
    pause
    exit /b 0
     
    :fonction
     
    set "fichier=%~dp1"
     
    echo.!fichier! | find "%archivage%" >nul || (
    	set "archive=!fichier:%source%=%archivage%!"
    	echo.
    	xcopy /Y %1 "!archive!"
    )
     
    goto :eof

  16. #16
    Membre éclairé 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
    Par défaut
    Hello
    Je te remercie.
    Je regarde cela dés ce soir !

  17. #17
    Membre éclairé 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
    Par défaut
    Hello
    Cela semble fonctionner parfaitement.
    j'ai juste fait une modif dans le dossier d'archivage.
    Je l'ai déplacé du dossier source
    Code Batch : 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
    @echo offsetlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\PHOTOS\ADO - SAUVEGARDE TELEPHONE"
    set "destination=D:\PHOTOS\A  TRIER"
    set "archivage=D:\PHOTOS\ADO - ARCHIVAGE"
     
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
    if not exist "%archivage%" (mkdir "%archivage%")
     
    for /r %%A in (*.*) do (
        for /f "tokens=2 delims=_-" %%E in ("%%~nA") do (
             echo.%%E | findstr /R "[0-9][0-9][0-9][0-9][0-9][0-9]" >nul && (
                set "dossier=%%E"
                set "dossier=!dossier:~0,4! !dossier:~4,2! !dossier:~6,2!"
                if not exist "%destination%\!dossier!" (mkdir "%destination%\!dossier!")
                echo.
                xcopy /Y "%%~A" "%destination%\!dossier!" && call :fonction "%%~A"
            )
        ) 
    )
     
    pause
    exit /b 0
     
    :fonction
     
    set "fichier=%~dp1"
     
    echo.!fichier! | find "%archivage%" >nul || (
        set "archive=!fichier:%source%=%archivage%!"
        echo.
        xcopy /Y %1 "!archive!"
    )
     
    goto :eof


    Question en plus :
    Je serais intéressé de reprendre le mm code mais sans la notion d'archivage....
    quelles lignes dois-je supprimer ?
    autant dans un code VBA excel, je vois, mais la je suis débutant
    Je dirais
    Code Batch : 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
    @echo offsetlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\PHOTOS\ADO - SAUVEGARDE TELEPHONE"
    set "destination=D:\PHOTOS\SGA  -  A  TRIER"
     
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
     
     
    for /r %%A in (*.*) do (
        for /f "tokens=2 delims=_-" %%E in ("%%~nA") do (
             echo.%%E | findstr /R "[0-9][0-9][0-9][0-9][0-9][0-9]" >nul && (
                set "dossier=%%E"
                set "dossier=!dossier:~0,4! !dossier:~4,2! !dossier:~6,2!"
                if not exist "%destination%\!dossier!" (mkdir "%destination%\!dossier!")
                echo.
                xcopy /Y "%%~A" "%destination%\!dossier!"        )
        ) 
    )
     
    pause
    exit /b 0
      goto :eof
    C'est bien cela ?

    Autre complément les fichiers ne semblent pas avoir été supprimés de la source après déplacement/création de dossier/archivage.
    ya til un code à rajouter ? aussi pour le code en Version sans archivage ?

  18. #18
    Membre émérite
    Homme Profil pro
    Développeur .NET en devenir
    Inscrit en
    Août 2017
    Messages
    549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET en devenir
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2017
    Messages : 549
    Par défaut
    Salut, merci bonne journée également.

    Voilà le code sans l'archivage et avec le déplacement des fichiers au lieu de la copie :

    Code Batch : 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
    @echo off
    setlocal enabledelayedexpansion
    chcp 28591 >nul
     
    set "source=D:\PHOTOS\ADO - SAUVEGARDE TELEPHONE"
    set "destination=D:\PHOTOS\SGA  -  A  TRIER"
     
    cd /d %source% || exit /b 1
     
    if not exist "%destination%" (mkdir "%destination%")
     
    for /r %%A in (*.*) do (
    	for /f "tokens=2 delims=_-" %%E in ("%%~nA") do (
     		echo.%%E | findstr /R "[0-9][0-9][0-9][0-9][0-9][0-9]" >nul && (
    			set "dossier=%%E"
    			set "dossier=!dossier:~0,4! !dossier:~4,2! !dossier:~6,2!"
    			if not exist "%destination%\!dossier!" (mkdir "%destination%\!dossier!")
    			echo.
    			move /Y "%%~A" "%destination%\!dossier!"
    		)
    	) 
    )
     
    pause
    exit /b 0

  19. #19
    Membre éclairé 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
    Par défaut
    hello
    Merci à toi
    Je regarde dans la journée

  20. #20
    Membre éclairé 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
    Par défaut
    Hello
    J'ai testé hier soir et ca marche super bien !!!
    good job

    Dans le code avec l'archivage, est-ce que l'on pourrait inclure le déplacement (suppression) des fichiers après archivage ?
    Pour résumer dans ce code :
    - On copie
    - On archive
    - on supprime

    J e n'ai peut être pas les bons mots !

    Merci à toi

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

Discussions similaires

  1. [Batch] Script de déplacement de fichiers datant de 10 jours
    Par sousket dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 15/06/2011, 17h49
  2. Script de déplacement fichiers
    Par WolwX dans le forum Linux
    Réponses: 5
    Dernier message: 17/10/2010, 16h37
  3. Script de déplacement de fichier wav qui ne fonctionne pas
    Par maxtofurious dans le forum VBScript
    Réponses: 1
    Dernier message: 24/12/2009, 18h19
  4. Déplacement de fichiers et archivage
    Par 19freddy88 dans le forum Langage
    Réponses: 5
    Dernier message: 11/06/2009, 12h42
  5. SunOS 5.8 script de déplacement de fichier
    Par aaron dans le forum Unix
    Réponses: 1
    Dernier message: 05/04/2008, 20h36

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