Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e) (modifié)

Salut tout le monde !!

 

Voila j'aurai besoin d'un script qui efface ce que contient un dossier, mais seulement ce qui est anterieur a 15 jours, je n'ai jamais fait ce genre de chose et pour le moment je n'ai que ca :

 

cd /
cd /repertoire
del *.* /Q

 

Mais pour ce qui est de la date, je ne sais pas comment faire pourriez vous m'aider ?

 

Merci d'avance :P

Modifié par bloodyxdeath

Posté(e) (modifié)

Il me semble pas que ça soit possible en batch, mais tu dois pouvoir faire un script avec WSH (renseigne toi sur http://www.microsoft.com/france/scripting/ )

 

Si ma mémoire est bonne, il faut utiliser Scripting.FileSystemObject, GetFile puis l'attribut DateCreated du fichier.

 

Si tu y connais rien (parce que c'est pas automatique : il faut tester chaque fichier...) je pourrai te faire ça quand j'aurai le temps (mais là j'ai le bac de français à réviser... argh)

Modifié par leneuf22
Posté(e)

Pour savoir c'est sous 9x/ME ou sous 2000/XP, les possibilités Batchs de ces versions de windows ne sont pas les même avec une nette supériorité pour le Batch 2000/XP

Posté(e)

avec un environnement NT si il y a moyen mais là j'ai rien sous le coude en procedure complête ou déjà écrite éventuellement un squelette :

1_utilisation de dir avec les elements de recherche (fichier de plus de 15j) resultat dans un fichier

2_utilisation de dir sans les elements de recherche resultat dans un fichier

3_ ensuite utilisation d'un boucle for pour valider l'existence d'une ligne dans les 2 fichiers si oui suppression, et si non on fait rien

Posté(e)

je vois ce que tu veux dire a peu pres, en algo je pourrai peut etre m'en sortir, mais je ne sais pas comment ecrire dans le *.bat :

 

Si "la date de creation est superieur a 15 jours" alors

et encore moins la boucle pour...

 

Sauf si c'est comme en C, la je pourrais eventuellement me debrouiller ! ^^

Posté(e)

B'Jour,

 

les solutions en DOS existent mais c'est du lourd de lourd pour aller récupérer la date de chaque fichier ! :P Mieux vaudrait, comme dit plus haut, passer par autre chose. Peut-être vas-tu trouver ton bonheur là :

http://www.robvanderwoude.com/index.html ?

 

Pas le temps de chercher l'éventuel bon dans le tas ... J'ai trouvé dans les 1ères pages données par Google en entrant : batch+DOS+date

Posté(e)

Ok, mais si je veux le faire dans un autre langage, c'est tjrs le mm probleme, par exemple en C, je ne sais pas du tout comment recuperer la date de creation du fichier ou ce genre de chose ... j'aurais vraiment cru que ca aurait ete plus simple :'(

Posté(e)

:P

en c ce ne srait pas les infos que tu cherches ?

ici

sinon sur ce site tu devrais trouver ton bonheur

si j'ai 2mn je regarde en D7

a+

Posté(e) (modifié)

En C sous Windows tu as GetFileTime (#include <Windows.h>)

Le prototype :

BOOL GetFileTime(HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime);

typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *LPFILETIME;

BOOL FileTimeToSystemTime(const LPFILETIME lpFileTime, LPSYSTEMTIME lpSystemTime);

typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *LPSYSTEMTIME;

 

Je crois que j'ai presque tout dit :P

 

Tu auras plus d'infos sur http://msdn.microsoft.com/

 

 

C'est vrai que c'est beaucoup moins lourd à faire en C qu'en script, VBS ou autres...

Modifié par leneuf22

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...