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 :

Batch de copie avec tri des fichiers


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut Batch de copie avec tri des fichiers par extention
    Bonjour a tous,
    J'ai un petit problème je voudrai mettre un place un .bat qui me permettrai de de trier mes fichiers et en fonction de leur extensions les copier dans des dossiers différents.
    En se qui concerne la copie je n'ai pas de souci par contre pour copier qu'un type de fichier impossible de trouver la solution.

  2. #2
    Expert confirmé
    Avatar de shawn12
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2006
    Messages
    3 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2006
    Messages : 3 368
    Par défaut
    Un exemple : pour copier juste les fichiers jpg :


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut
    Voila se que j'ai réussi a faire le seul problème est qu'il faut que mon batch soi dans le dossier source existe t-il une méthode pour lui indiquer ou chercher

    @echo off
    cls
    if exist *.bmp (copy *.bmp C:\test\destination\"photo")
    if exist *.docx (copy *.docx C:\test\destination\"texte")
    pause

  4. #4
    Expert confirmé
    Avatar de shawn12
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2006
    Messages
    3 368
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2006
    Messages : 3 368
    Par défaut
    Utilise la commande cd qui permet de sélectionner le répertoire dans lequel va travailler le script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    cls
    cd /d chemin_du_repertoire
    if exist *.bmp (copy *.bmp C:\test\destination\"photo")
    if exist *.docx (copy *.docx C:\test\destination\"texte")
    pause
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    cls
    cd /d C:\test\source
    if exist *.bmp (copy *.bmp C:\test\destination\"photo")
    if exist *.docx (copy *.docx C:\test\destination\"texte")
    pause

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut
    Encore merci pour ton aide.
    J'aurai une autre question comment est t-il possible de récupérer le nom d'un sous répertoire présent dans source dans une variable pour pouvoir copier également les données présentes dans le répertoire
    j'ai utilisé cette commande qui me permet de listé les sous répertoires, mais je n'arrive pas récupérer juste le nom du sous répertoire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /r "C:\test\source" %%i in (*.bmp) do echo %%i
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    cls
    cd /d C:\test\source
    for /r "C:\test\source" %%i in (*.bmp) do echo %%i
    
    if exist "%%i:\" set rep=%%i&
    
    
    if exist %rep%:\*.bmp (copy *.bmp C:\test\destination\"photo")
    if exist *.bmp (copy *.bmp C:\test\destination\"photo")
    if exist *.docx (copy *.docx C:\test\destination\"texte")
    pause

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut
    bonjour et encore merci pour vos réponses,

    alors voila ou j'en suis :

    J'ai retravaillé a partir de votre exemple et j'ai presque réussit se que je voulais faire c a dire rechercher un typede fichier dans un dossier contenant des sous dossiers avec le code qui suit j'arrive a faire se que je veux sauf qu'il ne me copié les fichiers que du dernier sous dossier et pas dans tous comme je le souhaite. je bloque un petit peu je me permet de nouveau de soliciter votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    cls
    cd D:\Backup\download
    set FILENAME=*.bmp
    set filepath=
    
    FOR /F %%f in ('dir /B') do set FILEPATH=%%f
    
    cd D:\Backup\download\%FILEPATH%
    copy *.bmp D:\Backup\"photo"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut
    Bonjour,

    J'ai essayé la méthode que vous m'avez conseillé j'ai essayé de refaire des modifications mais ça ne fonctionne pas. Dans la variable FILEPATH est uniquement récupéré le nom du premier sous répertoire.

    J'ai réfléchit a une autre solution mais je n'arrive pas à la mettre en place :
    est il possible de rechercher un type de fichier dans tous les sous répertoire d'un dossier est de les copier ensuite.

  8. #8
    Membre Expert
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Par défaut
    Bonsoir,

    c'est possible,


    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
    @Echo off
    
    Setlocal
    
    Set extension=txt
    
    :: deplacement vers Dossier cible
    pushd "c:\Parent_Folder\"
    
    :: filtrer les types de fichiers dans les Sous-dossiers
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*.*"') Do (
      If %%~xa==.%extension% Xcopy /y "%%a" D:\destination\
     )
    
    popd
    
    Endlocal

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 20
    Par défaut
    Bonjour,

    c'est parfait grâce à vous j'ai réussit a faire exactement se dont j'avais besoin encore une fois merci.

    Je mets mon code terminer si ça peu aider quelqu'un d'autre.

    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
    @Echo off
    
    Setlocal
    
    :: dossier ou se trouve les sous-dossier
    cd C:\test\source\
    
    Set extension=bmp
    Set extension2=txt
    
    :: filtrer les types de fichiers dans les Sous-dossiers
    For /f "tokens=*" %%a In ('dir /s /b /a-d "*.*"') Do (
    ::contrôle du type d'extension avec copie dans dossier précis
      If %%~xa==.%extension% Xcopy /y "%%a" C:\test\destination\photo\
      If %%~xa==.%extension2% Xcopy /y "%%a" C:\test\destination\texte\
     )
    
    Endlocal
    pause

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

Discussions similaires

  1. [DTD] utiliser avec JAVA des fichiers DTD pour vérifier la validité des fichiers XML
    Par Balbuzard dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 20/04/2009, 12h10
  2. Selection dossier avec visu des fichiers
    Par tAKAmAkA dans le forum IHM
    Réponses: 1
    Dernier message: 30/11/2008, 17h00
  3. [E-03] ListBox avec liste des fichiers d'un dossier
    Par Daejung dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/11/2008, 01h43
  4. Copie de cellule des fichiers d'un répertoire
    Par Fidji78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2006, 18h36
  5. Batch d'extraction avec sélection des données ?
    Par beastman007 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2006, 11h02

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