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 :

Rechercher des fichiers de la même date


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut Rechercher des fichiers de la même date
    Bonjour,

    Je voudrais savoir quelle est la commande utilisée pour rechercher des fichiers d'une date précise.

    Par exemple :
    Je récupère la date de création d'un fichier avec la commande dir et ceci dans fichier texte.

    Puis rechercher d'autres fichiers créés à la même date.

    Merci pour votre aide

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /f "tokens=1 delims= " %%a in ('dir /t:c c:\dossier\fichier.ext ^| findstr /i fichier.ext') do set date1=%%a
    for /f "tokens=3,* delims= " %%b in ('dir /t:c c:\dossier ^| findstr %date1%') do echo %%c
    pause

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut
    Bonjour BlastKiller

    Merci bien, je vais essayer ton code

  4. #4
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 13
    Par défaut
    Blastkiller merci beaucoup ton code m'as aidé et c'est ce que je voulais

    si je dérange pas, j'ai une autre question, je voudrais lister dans un fichier texte les fichiers créer dans un espace de temps de 60 jours.

    Est ce que c'est possible ?

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @echo off
    ::date -2 mois (-60 jours)
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set mois=%mois:0=%
    set annee=%date:~6,4%
    if %mois% EQU 2 set /a annee-=1& set mois=12
    if %mois% EQU 1 set /a annee-=1& set mois=11
    if %mois% GEQ 3 set /a mois=%mois%-2
    if "%mois:~1,1%"=="" set mois=0%mois%
    set date1=%jour%/%mois%/%annee%
    ::verification de la date de création des fichiers dans le dossier c:\test et log dans c:\log.txt
    for /f "delims=" %%a in ('dir /b c:\test') do for /f "tokens=1,3,* delims= " %%b in ('dir /t:c "c:\test\%%a" ^| findstr "%%a"') do if %%b GEQ %date1% echo %%d >> c:\log.txt

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 40
    Par défaut
    Salut,

    Dans ton dernier script, tu ne tiens pas compte des années bissextiles et du nombre de jours du mois.

    Dernièrement, j'ai du mettre au point un script pour mes besoins personnels qui pourrait vous intéresser.

    Il prend en paramètre un nombre de jours (60 par défaut) et donne la liste des date de la date du jour - x jours en tenant compte des années bissextiles.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    @echo off
    rem Petit script permettant de récuperer la date du jour - x jour (parametre en entrée) en tenant compte des années bissextiles
    rem 60 jours par défaut
    
    rem Indispensable pour les l'expention retardée
    setlocal enableextensions enabledelayedexpansion
    
    set jjcalc=%date:~0,2%
    set mmcalc=%date:~3,2%
    
    rem --------------------------------------------------------------------------------------
    rem Petite manip pour se débarrasser du 0 devant les mois et jours inferieurs à 10 
    rem sinon le dos croit que c'est de l'octal
    rem --------------------------------------------------------------------------------------
    if "!jjcalc:~0,1!"=="0" ( set /a jcalc=!jjcalc:~1,1!) ELSE ( set /a jcalc=%jjcalc%)
    if "!mmcalc:~0,1!"=="0" ( set /a mcalc=!mmcalc:~1,1!) ELSE ( set /a mcalc=%mmcalc%)
    set /a acalc=%date:~6,4%
    
    if "%1"=="" (	
    	set /a Nb=60
    	) else ( 
    		set /a Nb=%1
    	)
    
    set bissex="NON"
    
    set /a calc=!acalc!%%400
    IF !calc! EQU 0 (
    		set bissex="OUI"
    ) else (
    	set /a calc=!acalc!%%4
    	IF !calc! EQU 0 (
    		set /a calc=!acalc!%%100
    		IF !calc! NEQ 0 (
    			set bissex="OUI"
    		)
    	)
    )
    echo Date de depart: %date% "!jcalc!" "!mcalc!" "!acalc!"
    for /l %%i in (1, 1, %Nb%) do (
    	set Jour=!jcalc!
    	set Mois=!mcalc!
    rem -----------------------------------------------------------------------------------
    rem Manip pour rajouter les 0 devant les mois et jours inférieurs à 10
    rem --------------------------------------------------------------------------------------
    	if "!jcalc:~1,2!"=="" (set Jour=0!jcalc:~0,1!)
    	if "!mcalc:~1,2!"=="" (set Mois=0!mcalc:~0,1!)	
    	set DateRecherche=!acalc!!Mois!!Jour!
    	rem c'est dans cette variable que se trouve la date 
    	echo !DateRecherche! 
    	set /a jcalc=!jcalc!-1
    	if "!jcalc!"=="0" (
    		set /a mcalc=!mcalc!-1
    		if "!mcalc!"=="0" (
    rem --------------------------------------------------------------------------------------
    rem On change d'annee, donc on vérifie que celle-ci n'est pas bissextile
    rem --------------------------------------------------------------------------------------
    			set /a mcalc=12
    			set /a acalc=!acalc!-1
    			set bissex="NON"
    			set /a calc=!acalc!%%400
    			IF !calc! EQU 0 (
    					set bissex="OUI"
    			) else (
    				set /a calc=!acalc!%%4
    				IF !calc! EQU 0 (
    					set /a calc=!acalc!%%100
    					IF !calc! NEQ 0 (
    						set bissex="OUI"
    					)
    				)
    			)
    		)
    rem --------------------------------------------------------------------------------------
    rem On change de mois, donc on attribue le nombre de jours en ftn du nouveau 
    rem mois et de l'année bissextile ou non
    rem --------------------------------------------------------------------------------------		
    		if "!mcalc!"=="1" (
    			set /a jcalc=30
    		) else if  "!mcalc!"=="2" (	
    			if !bissex!=="OUI" (
    				set /a jcalc=29
    			)else (
    				set /a jcalc=28
    			)
    		)else if  "!mcalc!"=="3" ( 
    			set /a jcalc=31
    		)else if  "!mcalc!"=="4" (
    			set /a jcalc=30
    		)else if  "!mcalc!"=="5" (
    			set /a jcalc=31
    		)else if  "!mcalc!"=="6" (
    			set /a jcalc=30
    		)else if  "!mcalc!"=="7" (
    			set /a jcalc=31
    		)else if  "!mcalc!"=="8" (
    			set /a jcalc=31
    		)else if  "!mcalc!"=="9" (
    			set /a jcalc=30
    		)else if  "!mcalc!"=="10" (
    			set /a jcalc=31
    		)else if  "!mcalc!"=="11" (
    			set /a jcalc=30
    		)else if  "!mcalc!"=="12" (
    			set /a jcalc=31
    		)
    	)
    )
    pause
    Voilà
    (si vous n'avez pas de retour, je vais peut-être le proposer dans la faq, vu que c'est une question qui a l'air de revenir souvent)

Discussions similaires

  1. rechercher des fichiers dans tous les dossiers
    Par nitteo dans le forum MFC
    Réponses: 4
    Dernier message: 23/06/2006, 18h08
  2. Recherche des fichiers avec ksh
    Par mzt.insat dans le forum Linux
    Réponses: 3
    Dernier message: 15/05/2006, 22h51
  3. Programme de recherche des fichiers
    Par lion13 dans le forum Linux
    Réponses: 2
    Dernier message: 05/03/2006, 22h28
  4. Recherche des fichiers
    Par melmouj dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/10/2005, 18h11
  5. Regrouper des fichiers sous un même nom
    Par Azharis dans le forum C++
    Réponses: 7
    Dernier message: 22/06/2005, 12h05

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