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 :

Copier les répertoires d’un dossier et plusieurs types de fichiers spécifiques s'y trouvant


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut Copier les répertoires d’un dossier et plusieurs types de fichiers spécifiques s'y trouvant
    Bonjour à tous,

    Je voudrais faire évoluer la ligne de code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XCOPY %Source%\*.ex1 %Cible%\Test /S /I /C /exclude: except.txt >> %Cible%\Rapport.txt
    Elle permet de faire une copie de tous les répertoires contenus dans %Source% ainsi que les fichiers *.ex1 vers le répertoire %Cible%.
    Les répertoires présents dans le fichier except.txt ne sont pas pris en compte et un fichier %Cible%\Rapport.txt est généré qui retrace l’ensemble des répertoires et fichiers copiés.

    Ma question : comment faire pour associer à la copie des fichiers *.ex1 un autres type de fichiers Exemple.ex2 ?

    Merci pour votre aide

  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

    Peut-être quelque chose comme ce :
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    set "Source=%userprofile%\Desktop"
    set "Cible=e:\HackooTestFolder"
    if not exist "%Cible%" MD "%Cible%"
    set "Rapport=%Cible%\Rapport.txt"
    If Exist %Rapport% Del %Rapport%
    Rem ici j'ai fixé juste 3 extensions pour le test ; vous pouvez ajouter d'autres ou les supprmier 
    set "Extensions=txt vbs bat"
    For %%a in (%Extensions%) do ( 
        echo XCOPY /S /I /C /exclude:except.txt "%Source%\*.%%a" "%Cible%\"
        XCOPY /S /I /C /exclude:except.txt "%Source%\*.%%a" "%Cible%\" >>%Rapport%
    )
    Start "" %Rapport%

  3. #3
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Merci pour votre contribution.

    Effectivement ça marche mais ce n'est pas exactement ce que je voudrais.
    Le premier type de fichier recherché est bien *.ex1 (nom variable et extension fixe) mais le 2ème est un simple fichier Exemple.ex2 (nom et extension fixes).

    J'ai essayé d'adapter votre code mais ça ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set "Extensions=*.ex1 Exemple.ex2"
    For %%a in (%Extensions%) do ( 
        echo XCOPY /S /I /C /exclude:except.txt "%Source%\%%a" "%Cible%\"
        XCOPY /S /I /C /exclude:except.txt "%Source%\%%a" "%Cible%\" >>%Rapport%
    )

  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
    Citation Envoyé par MrBiduleX Voir le message
    Merci pour votre contribution.

    Effectivement ça marche mais ce n'est pas exactement ce que je voudrais.
    Le premier type de fichier recherché est bien *.ex1 (nom variable et extension fixe) mais le 2ème est un simple fichier Exemple.ex2 (nom et extension fixes).

    J'ai essayé d'adapter votre code mais ça ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    set "Extensions=*.ex1 Exemple.ex2"
    For %%a in (%Extensions%) do ( 
        echo XCOPY /S /I /C /exclude:except.txt "%Source%\%%a" "%Cible%\"
        XCOPY /S /I /C /exclude:except.txt "%Source%\%%a" "%Cible%\" >>%Rapport%
    )
    Il faut mettre juste les extensions sans astérixis "*" et sans point "."
    Juste délimité par un espace comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set "Extensions=ex1 ex2"
    mais vous deviez les ajouter ici :

    XCOPY /S /I /C /exclude:except.txt "%Source%\*.%%a" "%Cible%\"
    Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    set "Extensions=ex1 ex2"
    For %%a in (%Extensions%) do ( 
        echo XCOPY /S /I /C /exclude:except.txt "%Source%\*.%%a" "%Cible%\"
        XCOPY /S /I /C /exclude:except.txt "%Source%\*.%%a" "%Cible%\" >>%Rapport%
    )

  5. #5
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Je suis d'accord avec vous (et cela marche).

    Mon problème c'est que je recherche bien un type d'extension pour le 1er groupe (tous les fichiers *.ex1)
    mais pour le 2ème, je ne rechercher que le fichier Exemple.ex2 de chaque répertoire
    (je ne veux pas d'autre type de fichier même s'ils portent l'extension ex2).

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Pourquoi ne pas passer par une étiquette (label) des fois je trouve ça plus clair et simple.

    Code bat : 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
    set "Source=%userprofile%\Desktop"
    set "Cible=e:\HackooTestFolder"
    if not exist "%Cible%" MD "%Cible%"
    set "Rapport=%Cible%\Rapport.txt"
    if Exist %Rapport% Del %Rapport%
    call :macopy "%Source%" "%Cible%" "%Rapport%" "*.ex1"
    call :macopy "%Source%" "%Cible%" "%Rapport%" "Exemple.ex2"
    Start "" %Rapport%
     
    pause
    goto :eof
     
    :macopy
    echo XCOPY /S /I /C /exclude:except.txt "%~1\%~4" "%~2\" ^>^> "%~3"
    XCOPY /S /I /C /exclude:except.txt "%~1\%~4" "%~2\" >> "%~3"
    goto :eof

  7. #7
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Merci, je teste cela lundi et je vous fais un retour.
    Bon weekend

  8. #8
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    J'ai donc testé cette autre solution. Cela copie bien les répertoires, les fichiers de type *.ex1 ; le fichier Rapport.txt est bien créé et renseigné en partie.

    Mais pas de trace des fichiers Exemple.ex2 dans les répertoires et dans le fichier Rapport.txt.

  9. #9
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    J'ai fait quelques tests et ça marche dans le cas ou un fichier Exemple.ex2 est présent à la racine du répertoire "%Source%".
    Si ce fichier s'y trouve, le reste des répertoires est analysé. S'il ne s'y trouve pas, il indique que le fichier n'est pas présent et il arrête la recherche sans analysé les autres répertoires.

    Y a t'il un moyen de contourner ce problème sans être obligé de coller un fichier Exemple.ex2 factice dans le dossier à la racine du répertoire "%Source%" ?

  10. #10
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    A oui, la commande xcopy à l'air à moitié pourrie, ou pas adaptée

  11. #11
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Revenons sur le besoin
    Tu souhaite copier des fichiers avec leur arborescence ?

  12. #12
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    robocopy semble plus adapté, mais je ne sais pas si tu l'a sur ton/tes postes et si il est natif à l'os.

  13. #13
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Ça donnerai cela

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    set "Source=%userprofile%\Desktop"
    set "Cible=e:\HackooTestFolder"
    set "Rapport=%Cible%\Rapport.txt"
     
    robocopy "%Source%" "%Cible%" "*.ex1" "Exemple.ex2" /S /LOG:"%Rapport%"
    Start "" "%Rapport%"

    Après tu peut encore peaufiner.

  14. #14
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Cela marche mais cette instruction n'est hélas pas disponible sur le poste où je vais installer ce fichier bat.

  15. #15
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Je ne sais pas si cette solution te tente mais tu peut embarquer l'outil à coté du .bat

    Pour se procurer robocopy :
    https://theos.in/windows-server/free...copy-software/
    https://www.microsoft.com/en-us/down....aspx?id=17657

    Il existe aussi des outils graphiques pour robocopy.

  16. #16
    Membre du Club
    Homme Profil pro
    Technicien
    Inscrit en
    Février 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2016
    Messages : 63
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Non, je ne préfère centraliser le code dans un seul fichier.

    Pour le moment, j'ai mis en place votre 1ère solution avec une "rustine" mais ce n'est pas très académique !!!
    Pour mémoire, obligation de créer un fichier Exemple.txt (que j'avais précédemment nommé Exemple.ex2) dans la racine du répertoire Source afin que la copie fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ECHO > Exemple.txt
    COPY C:\RepertoireBat %Source%\Exemple.txt
    
    CALL :MA_COPIE "%Source%" "%Cible%" "%Cible%\Rapport.txt" "*.ex1"
    CALL :MA_COPIE "%Source%" "%Cible%" "%Cible%\Rapport.txt" "Exemple.txt"
    
    DEL Exemple.txt
    DEL %Source%\Exemple.txt
    DEL %Cible%\Exemple.txt
    
    :MA_COPIE
    XCOPY /S /I /C /exclude:except.txt "%~1\%~4" "%~2\" >> "%~3"
    GOTO :eof
    Voilà, si vous avez une idée pour améliorer cette rustine, je suis preneur.

Discussions similaires

  1. Plusieurs types de fichiers dans un FileListBox
    Par Paindep dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 18/06/2010, 08h53
  2. find sur plusieurs types de fichier
    Par sofiane80 dans le forum Linux
    Réponses: 3
    Dernier message: 12/10/2009, 12h23
  3. Réponses: 10
    Dernier message: 27/05/2008, 15h09
  4. [VB6] Spécifier plusieurs types de fichiers avec FileSearch
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/01/2008, 15h59
  5. copier les resultats d'une requete sql dans un fichier texte
    Par mohammed_amine_wardy dans le forum SQL
    Réponses: 1
    Dernier message: 02/01/2008, 16h23

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