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 :

suppression fichier en fonction d'une date


Sujet :

Scripts/Batch

  1. #1
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut suppression fichier en fonction d'une date
    Bonjour à tous,

    Je fais mes premiers pas en batch dos et là j'ai quelques difficultées...
    Il faut que j'arrive à créer un .bat quotidien qui supprime tous les fichiers .gif d'un répertoire (et aussi de ses sous répertoires) qui ont été créer la veille.
    1ere galère : réussir à trouver la date de la veille.
    J'ai trouvé un certain nombre de fonction interessante à cette adresse ftp://garbo.uwasa.fi/pc/link/tscmd.zip

    ce qui me permet de récupérer la date d'hier :
    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 & setlocal enableextensions enabledelayedexpansion
    set targetdir_=c:\mon_dossier
    if not exist "%targetdir_%\*.*" (
      echo Dossier "%targetdir_%" introuvable
      goto :EOF)
    :: utilisation DATE2NUM ftp://garbo.uwasa.fi/pc/link/tscmd.zip
    :: recuperation date du jour
    DATE2NUM /set > "%mytemp%\tmp$$$.cmd"
    for %%c in (call del) do %%c "%mytemp%\tmp$$$.cmd"
    :: date d'hier
    set /a yesterday_=%datenum_% -1
    :: conversion
    :: utilisation NUM2DATE.EXE ftp://garbo.uwasa.fi/pc/link/tscmd.zip
    NUM2DATE %yesterday_% /set > "%mytemp%\tmp$$$.cmd"
    for %%c in (call del) do %%c "%mytemp%\tmp$$$.cmd"
    echo dd_=%dd_% mm_=%mm_% yyyy_=%yyyy_%
    Là je pense que j'ai trouvé une partie de la réponse à mon problème.
    D'autre part j'ai chercher un moyen de trouver tous les .gif de mon répertoire et de les balancer dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set %script_%=mon_fichier
    dir /s *.gif >> %script_%
    Mais là je bloque...
    D'un côté j'ai ma date d'hier et de l'autre tous mes fichiers .gif, mais je ne sais pas comment récupérer uniquement ceux que je dois supprimé.
    Quelqu'un peut il m'aider ?
    Je pense qu'une boucle for sur mon dir pourrais faire l'affaire, mais je suis un peu perdu...

    PS : si vous connaissez une autre méthode pour récupérer la date d'hier, je prend !
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  2. #2
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Je me réponds à moi même (ben oui, tout les fou ne sont pas enfermé )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    set date_=29/06/2007
    if exist x:\test\script.txt del x:\test\script.txt 
    for /f "delims=" %%f in ('dir "x:\test\" /s /b /a:-d') do (
        echo %%f %%~tf | find "%date_%" > nul && echo %%~tf %%~ff>> script.txt
        )
    Petit bout de code pour récupérer tout les fichiers du répertoire x:\test et de ses sous repertoire qui ont été créer le 29/06/2007

    En recollant les morceaux avec mon message précédent, il est facile de supprimer les fichiers qui ont été créer hier.
    Je planche sur un autre moyen de récupérer la date d'hier par un autre moyen (parce qu'utiliser des .exe exterieur est un peu dangereux -> si on copie le .bat dans un autre dossier en pensant qu'il fonctionne tout seul et bien il ne marchera plus !)
    @suivre donc
    Si quelqu'un à une piste je reste à l'écoute...
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  3. #3
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    En testant ce code sur une autre machine je me suis rendu compte que la date de création de mes fichiers étaient de la forme JJ/MM/AA
    Donc le code précédent ne marche plus
    J'abandonne le batch dos, un programme VB devrait faire l'affaire
    It isn't that they can't see the solution, it's that they can't see the problem.
    Mes Articles et Traductions (Microstrategy, Css et Javascript)
    Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Citation Envoyé par kalyparker
    J'abandonne le batch dos, un programme VB devrait faire l'affaire
    Sage décision

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/08/2014, 08h49
  2. Suppression d'un fichier en fonction d'une table
    Par settoken dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2009, 11h28
  3. Supprimer des fichiers en fonction d'une date
    Par Sh4dow49 dans le forum Administration système
    Réponses: 1
    Dernier message: 02/06/2009, 22h36
  4. Réponses: 7
    Dernier message: 17/11/2007, 17h05
  5. Script de suppression de fichiers en fonction de la date
    Par yellow174 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 06/02/2006, 11h57

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