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 N fichiers suivant date [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut Copier N fichiers suivant date
    Bonjour,

    Je souhaiterai planifier un script toutes les 10 minutes qui copie 100 fichiers d'un répertoire A vers un répertoire B en prenant à chaque fois les 100 fichiers les plus anciens. J'ai trouvé cette discussion http://www.developpez.net/forums/d59...ch-n-fichiers/ mais la réponse n'a pas été trouvée.

    Avez-vous une idée ?

    Par avance merci

  2. #2
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    ERRATUM : Je souhaite déplacer et non copier

  3. #3
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Voici une solution :

    Je n'ai pas testé le code. Il te faut définir ton tépertoire source ($Source) et destination ($destination).

    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
    @echo off&cls
    setlocal enabledelayedexpansion
    
    set $Source=TON_Repertoire_Source
    set $Destination=Ton_Repertoire_de_Destination
    set $limite=100
    
    :commence
    set $c=1
    for /f "delims=" %%a in ('dir "$Source" /od/b') (echo Deplacement du fichier No [!$c!] : %%a
                                           move "$Source\%%a" "$Destinatation"
                                           if !$c! Equ %$limite% goto:termine
                                           set /a $c+=1)
    
    :Termine
    Echo Termin‚
    Timeout 600
    goto:commence

  4. #4
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    Merci pour ton aide

    J'ai testé ton code en remplaçant $source et $destination par mes répertoires mais lorsque j'exécute le script j'ai le message d'erreur suivant :

    echo était inattendu


    As-tu une idée ? Problème de syntaxe ?

  5. #5
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    J'ai trouvé le problème pour l'erreur citée ci-dessus, j'ai ajouté le commande "do"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "delims=" %%a in ('dir "$Source" /od/b') do (echo Deplacement du fichier No [!$c!] : %%a
    Par contre lorsque j'exécute le script j'ai le message suivant :

    Déplacement du fichier No 1 : Nomdufichier

    et juste en dessous j'ai le fichier spécifié est introuvable alors qu'il est bien présent.

  6. #6
    Membre habitué
    Inscrit en
    Mars 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 12
    Par défaut
    Problème résolu, j'ai corrigé le code.


    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
    @echo off&cls
    setlocal enabledelayedexpansion
    
    set $Source=RépertoireSource
    set $Destination=RépertoireDestination
    set $limite=100
    
    :commence
    set $c=1
    for /f "delims=" %%a in ('dir "%$Source%" /od/b') do (echo Deplacement du fichier No [!$c!] : %%a
    move "%$Source%\%%a" "%$Destination%"
    if !$c! Equ %$limite% goto:termine
    set /a $c+=1)
    
    :Termine
    Echo Termin‚
    Timeout 600
    goto:commence
    Merci beaucoup

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

Discussions similaires

  1. Copier des fichiers avec une contrainte de date
    Par jejeapollo dans le forum VBScript
    Réponses: 1
    Dernier message: 02/07/2009, 09h43
  2. Copier un fichier en java en gardant date
    Par best94 dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 29/06/2009, 10h16
  3. copier xx fichier d'apres leurs date de modification
    Par patou41000 dans le forum VBScript
    Réponses: 3
    Dernier message: 11/05/2009, 12h36
  4. Copier un fichier à une date donnée
    Par skeut dans le forum Administration système
    Réponses: 2
    Dernier message: 06/05/2008, 12h11
  5. Copier les fichiers d'un répertoire dont la date est supérieure à x
    Par tatayoyo dans le forum Shell et commandes GNU
    Réponses: 17
    Dernier message: 03/10/2006, 14h28

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