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 :

Date d'un fichier


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Par défaut Date d'un fichier
    Bonjour,

    J'ai deux scripts :

    --> Un script qui se déclenche en post-transfert, quand un fichier arrive dans un répertoire, et le déplace dans un autre. (Le déclenchement post-transfert plante de temps en temps.)

    --> Une fois le fichier déplacé, j'ai un script qui tourne en tâche de fond, pour traîter ce fichier (multiples opérations)
    Dans ce script, je dois donc vérifier qu'aucun fichier n'est resté dans le répertoire original.

    Voila donc la boucle que j'ai fait:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    @echo off& setlocal enabledelayedexpansion
    [...]
    :: déclaration des répertoires
    set rep_entree=D:\test\ah
    set rep_cible=D:\test\huhuhu
    
    :: ==================== debut debloquage fichier bloque dans in ===============================
    :: Cette boucle permet de déplacer un fichier qui est resté bloqué dans le répertoire in depuis 5 minutes
    :: ======================================================================================
    :: récupération de l'heure actuelle
    set min_act_tmp=%time:~3,2%
    if %min_act_tmp% LSS 10 ( set /a min_act = %min_act_tmp:~1,2% - 5)
    if %min_act_tmp% GEQ 10 ( set /a min_act = %min_act_tmp% - 5)
    if %min_act% == 0 set min_act=60
    if %min_act% == -1 set min_act=59
    if %min_act% == -2 set min_act=58
    if %min_act% == -3 set min_act=57
    if %min_act% == -4 set min_act=56
    if %min_act% == -5 set min_act=55
    
    :: récupération de la date et de l'heure du fichier
    For %%a In ("%rep_entree%\*.*") Do ( 
    	set fic_bloque=%%a
    	set fic_bloque=!fic_bloque:é=‚!
    	set fic_bloque=!fic_bloque:è=Š!
    	set fic_bloque=!fic_bloque:à=…!
    	set fic_bloque=!fic_bloque:â=ƒ!
    	set datefic=%%~ta
    	goto traitementFicIn
    )
    :traitementFicIn
    for /f "tokens=1,2 delims= " %%a in ('echo %datefic%') do ( set heurefic=%%b)
    for /f "tokens=1,2 delims=:" %%a in ('echo %heurefic%') do ( set min_fic_tmp=%%b)
    
    if %min_fic_tmp% LSS 10 ( set /a min_fic = %min_fic_tmp:~1,2%)
    if %min_fic_tmp% GEQ 10 ( set /a min_fic = %min_fic_tmp%)
    
    echo min fic : %min_fic%
    echo min act : %min_act%
    
    ::Comparaison entre l'heure du fichier et l'heure actuelle
    :: Si l'heure du fichier est plus ancienne que l'heure actuelle, on déplace le fic dans le rep_cible
    if %min_fic% LEQ %min_act% move %fic_bloque% %rep_cible%
    if %min_fic% GTR %min_act% goto end
    :: ==================== FIN debloquage fichier bloque dans in ===============================
    echo hop on a fini le traitement
    :end
    [...]

    Le problème :

    Il arrive de temps en temps que ma boucle passe juste au moment ou le fichier est arrivé dans le répertoire, elle tente donc de récupérer la date du fichier, mais avant qu'elle ne le fasse, mon script post-transfert l'a bien déplacé dans le répertoire cible... Ca se joue donc a une fraction de seconde, mais ca plante.

    Je ne vois pas comment palier ce problème, quelqu'un a une idée ?
    Merci !

  2. #2
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Par défaut
    Bon, j'ai juste rajouté des if exist avant chaque traitement dans ma boucle, je verrais bien

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

Discussions similaires

  1. récupération des dates d'un fichier
    Par Bleuarff dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2005, 01h50
  2. Date dans un fichier txt
    Par cali1983 dans le forum C++
    Réponses: 6
    Dernier message: 23/05/2005, 17h35
  3. Réponses: 4
    Dernier message: 24/08/2004, 13h54
  4. [Layout-Date] Configuration par fichier
    Par Koko22 dans le forum Struts 1
    Réponses: 4
    Dernier message: 28/07/2004, 09h39
  5. [ICS FtpClient] Date modif de fichier et listage de dossier
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 13/06/2004, 19h54

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