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 coller selon une liste excel


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 13
    Par défaut Copier coller selon une liste excel
    Bonjour à tous,

    Mes connaissances en scripting étant très très limitées, et n'ayant pas réussi a trouver ce que je cherchais en écumant le net, je vous envoie cette bouteille à la mer.
    Mon besoin:
    je dois automatiser autant que possible la copie de fichiers .jpg contenu dans un dossier "source", vers un dossier "cible". Ces deux dossiers étant des partages réseau.
    Jusque là rien de compliqué, sauf que le dossier source contient environ 10000 fichiers, et que seules quelques centaines d'entre eux doivent être copiés dans la cible. La sélection de fichiers à copier varie régulièrement, et est basée sur une feuille excel, plus précisément une chaîne de caractère contenue dans une seule colonne.
    Pour faire plus clair, j'ai une colonne excel qui ressemble a ça :

    K01657S
    K01661K
    K01680L
    K01D46Q
    K01D47Q
    K02337Q
    K02345P
    K02446Q
    K02466R
    K024762
    K02D07I

    ces valeurs correspondent a des valeurs contenues dans les noms des fichiers que je dois copier, sachant que les noms peuvent être différents (mais contiennent toujours cette chaîne de 7 caractères)
    ex:
    K799181_ALT006.jpg
    K94633R.jpg
    K01D47Q_ALT009.tif

    A la main, ça prend un temps fou...

    Sur le net j'ai trouvé des choses qui se rapprochaient du résultat escompté, j'ai bien essayé de les adapter, mais jamais réussi a faire fonctionner mon script.
    Le plus proche de mon besoin étant ici:
    https://www.developpez.net/forums/d1...d-listing-txt/
    Mon souci c'est que comme la chaîne de caractères référence a une position variable dans le nom du fichier a copier, il faut insérer cette variable dans le script, et la je coince.

    Peut-être que ça n'est pas grand chose pour une âme charitable qui passera par là, qui sait.
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Premièrement, le contenu de la colonne Excel qui nous intéresse devrait être enregistré dans un fichier texte ou csv.

    Exemple :
    FileCopy.txt
    K01657S
    K01661K
    K01680L
    K01D46Q
    K01D47Q
    K02337Q
    K02345P
    K02446Q
    K02466R
    K024762
    K02D07I
    Les chaînes de caractères à trouvé se trouvent elles toujours en début de fichier ?
    Si le fichier existe déjà dans la cible doit il être écrasé ?

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 13
    Par défaut
    Merci d'avoir pris le temps de te pencher sur mon souci.
    Bien sur ces valeurs seront copiées dans un .txt
    Ensuite, la chaine de caractere est toujours composée de 7 caractères, mais son emplacement peut varier dans le nom du fichier recherché a copier, ce qui ajoute helas une complication supplémentaire.
    En theorie le dossier de destination sera vide au lancement du script, mais sinon y'a pas de problème a écraser un fichier de même nom déjà existant

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    Voici un exemple simple

    Tu as ton :
    - fichier cop.bat
    - fichier FileCopy.txt (au même niveau que cop.bat)
    - dossier src (source)
    - dossier dst (destination)

    Le FileCopy.txt
    K01657S
    K01661K
    K01680L
    K01D46Q
    K01D47Q
    K02337Q
    K02345P
    K02446Q
    K02466R
    K024762
    K02D07I
    Le cop.bat
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
     
    set src=C:\base\src
    set dst=C:\base\dst
    set file=%~dp0FileCopy.txt
     
    for /F "usebackq tokens=*" %%a in ("%file%") do xcopy "%src%\*%%~a*" "%dst%" /C /Q /H /R /K /Y 1>nul 2>nul
    pause

  5. #5
    Membre habitué
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2017
    Messages : 13
    Par défaut
    Super ! Ca fonctionne ! Merci beaucoup, c'est exactement ce dont j'avais besoin.

    J'aimerais juste ajouter un bout de code pour créer un rapport.txt qui recap les fichiers copiés et les fichiers en erreur. Egalement un texte dans la fenetre du batch qui dirait "xxx fichiers copiés"
    J'ai trouvé ca, je vais essayer de l'adapter a mon cas, sans fichier config.ini.


    if %errorlevel% EQU 0 (
    echo Fichier IMG_%%i.jpg OK >>%chemin_rapport_txt%\rapport.txt
    ) else (
    echo Impossible de copier le fichier IMG_%%i.jpg >>%chemin_rapport_txt%\rapport.txt
    )
    ) else (
    echo Le fichier IMG_%%i.jpg est deja present dans le répertoire cible >>%chemin_rapport_txt%\rapport.txt
    )
    )

    rem --- on ouvre le rapport.txt

    start %windir%\system32\notepad.exe %chemin_rapport_txt%\rapport.txt

    question subsidiaire: Est-ce que le script cherche également dans un éventuel sous-dossier du repertoire src ?

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 218
    Par défaut
    question subsidiaire: Est-ce que le script cherche également dans un éventuel sous-dossier du repertoire src ?
    Non, mais tu peux faire le test c'est assez simple. C'est un besoin ?

    J'aimerais juste ajouter un bout de code pour créer un rapport.txt qui recap les fichiers copiés et les fichiers en erreur. Egalement un texte dans la fenetre du batch qui dirait "xxx fichiers copiés"
    J'ai trouvé ça, je vais essayer de l'adapter a mon cas, sans fichier config.ini.
    Si tu souhaite faire un rapport cela modifiera la structure du script. Nous devrons copier fichier par fichier afin de savoir si il est OK ou KO et ne plus utiliser les jokers dans xcopy.

Discussions similaires

  1. Copier coller onglets en les nommant selon une liste
    Par manue87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/07/2017, 18h27
  2. [AC-2010] erreur lors d'un copier-coller dans une liste déroulante d'un formulaire
    Par freeman3869 dans le forum Access
    Réponses: 11
    Dernier message: 19/05/2015, 14h59
  3. [AC-2007] Problème copier/coller d'une ligne excel
    Par christophe31 dans le forum VBA Access
    Réponses: 8
    Dernier message: 09/03/2010, 14h50
  4. Réponses: 8
    Dernier message: 11/12/2008, 19h10
  5. [VBA] Pb avec Copier/coller d'une feuille Excel
    Par sebastien_oasis dans le forum Excel
    Réponses: 3
    Dernier message: 14/12/2007, 11h08

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