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 :

Copie de fichiers dans un répertoire variable


Sujet :

Scripts/Batch

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 206
    Points : 243
    Points
    243
    Par défaut Copie de fichiers dans un répertoire variable
    Bonjour à tous,

    Je recherche comment automatiser une copie de fichiers selon certaines conditions et n'ayant aucun notions en batch, je patinne.

    Mon fichier .bat se trouve dans le répertoire :

    C:/../../Anim Mensuelle/MaJMensuelle.bat

    Je souhaite copier l'ensemble des fichiers texte du répertoire :

    C:/../../Anim Mensuelle/Sources/Anim/*.txt

    Dans le repertoire (qu'il faudra créer)

    C:/../../Anime Mensuelle/[AnneeEnCours]/[MoisSuivant]


    Je souhaite que le répertoire [MoisSuivant] soit sous forme de chaîne (Janvier et non 1)

    Je me demandais donc, quelles sont les fonctions permettant de récupérer l'année en cours et le mois suivant sous forme de chaîne?

    Merci de bien vouloir prendre le temps de me donner un petit coup de pouce

  2. #2
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Voici 6 étapes que je te propose

    1 - récupérer la date du jour
    2 - Créer un filtre pour récupérer son mois
    3 - retraduire le mois suivant sous forme de mois écrit en jours.

    4 - Créer un répertoire s'il n'existe pas
    5 - Boucle sur tous tes fichiers textes
    6 - Créer la copie de chacun

    Tu trouveras toute l'aide nécessaire ici ou dans la faq pour des questions techniques ou de syntaxe


    Cordialement,
    Christophe
    Celui qui ne progresse pas chaque jour, recule chaque jour. Confucius
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  3. #3
    Candidat au Club
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Points : 3
    Points
    3
    Par défaut
    La commande date te permettra de recuperer la date courante. Après il suffit d'extraire le mois et l'année comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set jour=%Date:~0,2%
    set mois=%Date:~3,-5%
    set annee=%Date:~-4%
    Sa te fera sa à chercher en moins

    Pour le reste la commande copy t'aidera aussi.

    Pour le mois suivant ne pas oublier qu'en fin d'année il faudra repasser à Janvier et pas à un 13ème mois

  4. #4
    Membre chevronné
    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
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    il faut adapter ce script à tes besoins:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For /F "tokens=%date:~3,2%" %%z In (
     "Janvier Fevrier Mars Avril May Juin Juillet Aout Septembre Octobre Novembre Decembre"
    ) Do XCopy /lf "Sources\Anim\*.txt" "%date:~6,4%\%%z\"

    pour la variable date: ma variable retourne jj/mois/annee si ta configuration est autre alors utilise les variables de substitutions.
    pour plus d'nfos (voir les variables de substitutions) dans la FAQ


    adapter le chemin

    l'option /lf va t'afficher les chemins source/destination sans copie , pour que la copie prenne effet enlève-le.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 206
    Points : 243
    Points
    243
    Par défaut
    Merci pour vos réponses.

    J'ai essayé le script de I'm_Here, en l'adaptant, cela fonctionne mais il reste encore quelques détails à apporter.

    Voici le code que j'ai pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For /F "tokens= %date:~4,1%" %%z In (
     "Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre"
    ) Do XCopy "Sources\Anim\*.txt" "%date:~6,4%\%%z\"
    Je souhaite copier les fichiers dans le répertoire du mois suivant. Or ce script me permet de copier les fichiers dans le répertoire du mois courant uniquement.
    Comment puis-je faire pour prendre en compte ce paramètre? et notamment pour le mois de décembre qui entraine mois = 1/Janvier et année = année +1

    De plus, je souhaiterais que le script ne copie pas les fichiers déjà présents dans le répertoire de destination (et qu'il ne me demande pas de confirmation pour les écraser) Cela est-il possible?

    Merci

  6. #6
    Membre chevronné
    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
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    pas bien tester:

    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
    @echo off 
    :: format de date à adapter dd/mm/yyyy
    set $y=%date:~6,4%
    set $s=%date:~3,2%
    ================================
    Set $s=%$s:*0=%
    if not defined $s set $s=10
    Set /a $s+=1
    If %$s% gtr 12 Set /A $s=1,$y+=1
    ================================
    (For /F "tokens=%$s%" %%z In (
     "Janvier Fevrier Mars Avril May Juin Juillet Aout Septembre Octobre Novembre Decembre"
    ) do (
     mkdir "%$y%\%%z"
     replace -a "Sources\Anim\*.txt" "%$y%\%%z"
    ))2>nul

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 206
    Points : 243
    Points
    243
    Par défaut
    Ca à l'air de fonctionner impec'. Merci

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 54
    Points : 48
    Points
    48
    Par défaut Copier fichiers vers repertoires du jour
    Bonjour,


    Je rencontre un probleme similaire et aurais vraiment besoin d'aide.

    J'aurais besoin d'aide afin de pouvoir mettre en place un script qui me permettrait d'effectuer la copie d'un repertoire tous les jours pendant 30 jours dans 30 repertoires différent portant comme nom la date du jour.


    La commande suivante me permet de créer chaque jour un repertoire portant la date du jour: md D:\Users\XXX\XXX\XXX\%date:~6,4%%date:~3,2%%date:~0,2%

    J'ai aussi un script qui me permet de faire une copie d'un repertoire vers un autre mais comment lui dire de copier dans le repertoire du jour??

    Ce script me permettrait d'eviter d'avoir à rappatrier des bandes de sauvegardes et pouvoir faire des restaurations de fichiers très rapidement.

    Pour résumé, mon repertoire TOTO et tous ses sous repertoires doivent etre sauvegardés tous les jours dans des repertoires Date; date+1;date+2...

    Merci d'avance pour votre aide

Discussions similaires

  1. [Upload] Copie de fichiers dans un répertoire
    Par san1981 dans le forum Langage
    Réponses: 3
    Dernier message: 30/07/2008, 22h29
  2. [VBA-Excel] Copie d'un fichier dans un répertoire
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/10/2006, 15h46
  3. rechercher d'un nom de fichier dans un répertoire
    Par yerome dans le forum Langage
    Réponses: 7
    Dernier message: 21/07/2005, 12h54
  4. Réponses: 4
    Dernier message: 22/12/2003, 12h12

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