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 :

Lister les dossiers en filtrant selon la date de création


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Lister les dossiers en filtrant selon la date de création
    Bonjour,

    J'aimerais lister dans un fichier texte les sous-dossiers d'un répertoire dont la date de création est inférieure à 24h.
    Pour l'instant mon code fonctionne pour tous les dossiers (quelque soit la date de création) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    if exist liste.txt del liste.txt
    for /d %%X in (repertoire) do ECHO %%X>>liste.txt
    Il faut donc que je rajoute la condition IF (exprimée ci-dessous en rouge de façon logique mais non syntaxique) pour obtenir le filtre voulu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /d %%X in (repertoire) do IF date_creation<%DATE%-24:00  ECHO %%X>>liste.txt
    Malheureusement je ne sais ni par quel paramètre remplacer le "date_creation" ni faire la soustraction des 24h.

    Est-ce que quelqu'un peut m'éclaircir?
    Ou sinon connaissez vous une autre méthode pour effectuer ce que je veux?

    Merci d'avance pour votre aide

    Pauline

  2. #2
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Août 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Collégien
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2013
    Messages : 3
    Points : 13
    Points
    13
    Par défaut


    Voici un petit script que je t'ai fais pour afficher la date de création d'un ficher et si il a été créé il y a plus ou moins de 24h:

    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
    @echo off
    setlocal enabledelayedexpansion
    if exist tmp.txt del tmp.txt
    call:datecreation %1
    echo Le fichier !fichier! a ete cree le !datecreation!, a !heurecreation!.
    set "state=plus"
    if "!datecreation:~0,2!" EQU "!DATE:~0,2!" if "!heurecreation:~0,2!" EQU "!TIME:~0,2!" set "state=moins")
    echo Le fichier !fichier! a ete cree il y a !state! de 24h.
    pause>nul
    :datecreation
    set "fichier=%~nx1"
    dir /tc !fichier! >> tmp.txt
    for /f "tokens=1 delims= " %%a in ('type tmp.txt ^| find "!fichier!"') do (set "datecreation=%%a")
    for /f "tokens=2 delims= " %%b in ('type tmp.txt ^| find "!fichier!"') do (set "heurecreation=%%b")
    goto:eof
    Il faut glisser le fichier sur le programme.
    ATTENTION: LE NOM DU FICHIER NE DOIT PAS CONTENIR D'ESPACE !

    A toi d'adapter ce code avec ce que tu veux faire
    En espérant que ça puisse t'aider

    Dylan.

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Une autre solution :

    Pour VISTA ET 7 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @ECHO OFF
    setlocal enabledelayedexpansion
    set /a $j=%date:~0,2%-1
    set $j=0%$j%
    for %%a in (*.txt) do (set $Df=%%~ta
       if "!$Df:~3,2!!$Df:~0,2!" GTR "!date:~3,2!%$j:~-2%" echo "%%a" a moins de 24 heures)
    Pour XP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @ECHO OFF
    setlocal enabledelayedexpansion
    set /a $j=%date:~4,2%-1
    set $j=0%$j%
    for %%a in (*.txt) do (set $Df=%%~ta
       if "!$Df:~7,2!!$Df:~4,2!" GTR "!date:~7,2!%$j:~-2%" echo "%%a" a moins de 24 heures)
    Les fichers peuvent contenir des espaces.


  4. #4
    Nouveau Candidat au Club Avatar de jmt13
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour

    Ces lignes de codes m'interresse mais je suis vraiment un novice.
    Je recherche un script qui teste si dans une arborescence des dossiers ont été modifié sur les 2 dernières années et si oui les archiver
    A priori je pense que c'est cette ligne :
    set /a $j=%date:~4,2%-1

    qu il faut modifier ... peut être
    Merci d'avance

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/04/2011, 12h55
  2. lister les fichiers d'un repertoire par date
    Par ra77 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 03h02
  3. [VB6]lister les dossiers et sous dossier
    Par Jacen dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/04/2006, 08h06
  4. Lister les dossiers et fichiers d'un répertoire
    Par scorpia dans le forum ASP
    Réponses: 2
    Dernier message: 11/04/2006, 18h50
  5. lister les dossiers contenu sur un CD
    Par titicurio dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/02/2006, 11h35

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