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:

Besoin d'aide pour *.bat


bloodyxdeath

Messages recommandés

Re !

 

En fait je bloque ici ...

 

@echo off
cls

if not "%os%" =="Windows_NT" goto OSerr
title Suppression videos
color 0F

cd /
cd /Documents and Settings\utilisateur\Mes documents\Mes images\Mes photos Logitech\Photos et videcho é
os
if [condition avec les dates] then
del *.avi /Q

Goto bEnd
:OSerr
echo Ce batch ne fonctionne que sous Windows NT.
:bEnd

 

Quelqu'un connais t'il une fonction qui puisse me permettre de comparer les dates et si la date de la video et passe de 15 jours alors Hop on supprime !

 

Merci d'avance !

Lien vers le commentaire
Partager sur d’autres sites

Re B'jour,

 

ça m'énerve car on tourne autour du pot et j'ai pas le temps de m'y mettre sérieusement ! :P

 

Désolé, mais vas voir par là à (presque) tout hasard : http://www.jpsoft.com/help/index.htm?batchparms.htm

Lien vers le commentaire
Partager sur d’autres sites

j'ai fait des recherches et je suis tombé sur ca :

 

Renvoie la date et l'heure de création du fichier ou du dossier. Lecture seule.

[VBScript]
Function ShowFileInfo(filespec)
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
  ShowFileInfo = "Created: " & f.DateCreated
End Function

 

et sur ca :

 

Renvoie la date et l'heure en cours en fonction de leur paramétrage dans le système de votre ordinateur.

 

Dim MyVar
MyVar = Now ' MyVar contient la date et l'heure actuelles. 

 

Ca avance doucement, mais le probleme vient du fait que c'est en VBScript et je vous avourez qu'avec tout ce que j'ai lu ce matin je commence a me melanger les pinceaux :/

 

En gros avec ca, maintenant je n'ai plus qu'a comparer leur date et si la date de creation est superieur ou egal a 15 jours alors on supprime, mais j'ai peur que ca ne soit pas si evident que ca, il doit y avoir une fonction pour comparer 2 dates non ?

Lien vers le commentaire
Partager sur d’autres sites

Le truc qu'il faut trouver, c'est une manière de représenter une date en un entier (comme le time_t du C par exemple, à partir d'une date référence), et avec ça tu peux calculer des différences de dates très simplement, et déterminer si il faut supprimer le fichier ou pas.

Lien vers le commentaire
Partager sur d’autres sites

Pour commencer, déplacer les fichiers du jour :

for /f "tokens=1-4 delims=/" %%i in ('date/t') do set Jour=%%i
for /f "tokens=1-4 delims=/" %%i in ('date/t') do set Mois=%%j
for /f "tokens=1-4 delims=/ " %%i in ('date/t') do set Annee=%%k
xcopy *.* test\*.* /d:"%mois%-%jour%-%annee%"

 

(la technique utilisée consiste a deplacer les 15 derniers jours et a supprimer le reste puis a réintégrer les jours déplacé)

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Voila un script en vbs qui fait le boulot si tu en as encore besoin...

'**************************************************************************'
'*  Script de suppression des fichier de plus de trois mois sur les       *'
'*         serveurs tampon                                                *'
'**************************************************************************'
'*  Version              |  Auteur         |  Nature des modifications    *'	
'**************************************************************************'
'*  v0.9 - 22/08/2005    | William MESSIN  |  Création                    *'	
'**************************************************************************'
'*  Initialiser le chemin à scanner - Supprime tous les répertoires       *'
'*       vieux de plus de x jours dans le Path initialisé                 *'
'**************************************************************************'

'Chemin ou se trouve les répertoires à supprimer.
Const Path = "E:\Data\SauvegardeUsers\"                      'A initialiser

'Fichier de log à créer.
Const LogFile = "Log_suppr_tampon.log"                       'A initialiser

'Nombre de jours min pour les dossier à supprimer
Const NbJours = 15                                           'A initialiser

Const  ForWriting = 2, ForAppending = 8

Dim Text
Dim f, ff, fileSysObj, list
Dim dossier

'On error resume next

Set fileSysObj = CreateObject("Scripting.FileSystemObject")

' Teste si le dossier existe
If (fileSysObj.FolderExists(Path)) Then
Text=WriteLog (LogFile, "***********************", ForWriting)
Text=WriteLog (LogFile, "Fichier de log des suppressions du " & Date, ForAppending)
       Set f = fileSysObj.GetFolder(Path)
       Set list = f.SubFolders

       For Each ff in list
         dossier = ff.name
         Text=WriteLog (LogFile, "", ForAppending)
         Text=WriteLog (LogFile, dossier & " , créé le " &ff.DateCreated, ForAppending)
         If Date-ff.DateCreated > NbJours Then
               Text=WriteLog (LogFile, "vieux de "& Date-ff.DateCreated &" jours : dossier supprimé!!", ForAppending)
               fileSysObj.DeleteFolder(ff)
         Else
               Text=WriteLog (LogFile, "vieux de "& Date-ff.DateCreated &" jours : dossier conservé", ForAppending)
         End If
       Next
Else
 Text=WriteLog (LogFile, "ERROR :  " & Path & "  not found!!!", ForWriting)
End If
Text=WriteLog (LogFile, "", ForAppending)
Text=WriteLog (LogFile, "***** END OF FILE *****", ForAppending)


'**************************************************************************'
'*  Fonction WriteLog                                                     *'
'**************************************************************************'
'* Cette fonction ecrit une ligne de texte dans le fichier specifié.      *'
'* Si ce fihier n'existe pas il est crée                                  *'
'**************************************************************************'
'*  Input:      FichierCible	: Fichier dans lequel on doit ecrire      *'
'*  	Text  : Ligne à ecriredans le fichier           *'
'**************************************************************************'
'*  Output:    	Aucun                                     *'
'**************************************************************************'
Private Function WriteLog (ByVal FichierCible, ByVal Text, ByVal Mode)

      ' Mode : Ecrasement    , à la suite
      ' Const  ForWriting = 2, ForAppending = 8
Dim fso, fresult

Set fso = CreateObject("Scripting.FileSystemObject")
       Set fresult = fso.OpenTextFile(FichierCible, Mode, True)
 
fresult.Write Text & VbCrLf
       fresult.close

End Function

 

a enregistrer sous ***.vbs puis le lancer sous DOS avec un wscript ***.vbs

 

J'espère que ça vous va!! :P

 

Désolé j'avais pas vu les dates.... ça servira pour les autres qui ont besoin de faire qqchose de similaire! :P

Modifié par Willynuisance
Lien vers le commentaire
Partager sur d’autres sites

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...