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

VBScript Discussion :

Traitement calendaires de fichiers


Sujet :

VBScript

  1. #1
    Membre confirmé
    Inscrit en
    Février 2009
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 102
    Par défaut Traitement calendaires de fichiers
    Bonjour à tous,

    J'ai créé un script qui prends en compte le nombre de jour dans le mois qui sera traité.
    Mais il n'est pas toujours précis quant aux jours traités
    Auriez-vous une autre méthode ?


    Mois à traiter :

    Janvier 31
    Fevrier 28
    Mars 31
    Avril 30
    Mai 31 ...

    Ce que doit faire le script :

    Il vérifie que le dossier Rap_Temp existe
    Il copie les fichiers des jours du mois à traiter
    Il compresse les fichiers copiés
    Il supprime le dossier Rap_Temp
    Il supprimer les fichiers des jours du mois à traiter dans son dossier d'origine et ne laisse que les fichiers du mois précédent.


    Le script executé le 01 Mars: Compresse et sauvegarde sur un aure lecteur les fichier de Janvier et garde les fichiers de Février.

    Le script éxécuté le 01 Avril: Compresse et sauvegarde sur un aure lecteur les fichiers de Février et garde les fichiers de Mars.

    Merci à tous pour vos réponses

    Mon script:

    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
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    '------------------------
    'Declaration variables
    '------------------------
    Dim Centre, Plaque, Source, Destination, Safe, Fold, Fich, Log
    Dim objFSO, FileLog, oShell, WshShell, oFS
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objArgs = Wscript.Arguments
    VERSION="1.00"
    centre = objArgs(0)
    Select Case Centre
    Case "SA"
    	Plaque="Paris"
    Case "SB"
    	Plaque="Paris"
    Case "SC"
    	Plaque="Province"
    Case "SD"
    	Plaque="Paris"
    Case "SE"
    	Plaque="Province"
    Case Else
    	Wscript.echo "Erreur dans le parametre"
    	wscript.quit(2)
    End Select
     
    '----------------------------------------------------------------
    'Définission des chemins utilisés pour chaque Salle pour la ville
    '----------------------------------------------------------------
     
     
     
     
    MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now) 
     
     
    Log="E:\appli\Log\Historique\Rapport_" & centre & "_"& MyDate &".log"
     
    Set fso = Wscript.CreateObject("Scripting.FileSystemObject")
    Set FileLog = FSO.CreateTextFile(Log)
     
    'MyDate = Day(Now) & "." & Year(Now) & "." & Month(Now) 
     
     
    Source = "E:\appli\Formation_" & plaque & "\Efluid_" & Centre & "\Rapport\"
    Destination = "K:\Sauvegarde\Formation_" & plaque & "\Rapport\" & Centre & "\Rapport_sauve_"& Centre &"_"& MyDate &".zip"
    Safe = "K:\Sauvegarde\Formation_" & plaque & "\Rapport\"& Centre &"\Rap_temp"
     
    '------------------------------------------
    'Initialisation des log pour chaque centre
    '-------------------------------------------
     
    Sub Msglog(severite,code,label)
    	wscript.echo Mydate & "-" & time & " " & severite & " " & code & " " & label
    	FileLog.WriteLine(Mydate & "-" & time & " " & severite & " " & code & " " & label) 
    end sub
     
    '---------------------------------------------------------------------------------------------------------------------------------------
    'Test si le dossier Rapport n'est pas vide pour chaque centre OK = Traitement KO = Arrêt du Traitement pour chaque centre
    '---------------------------------------------------------------------------------------------------------------------------------------
     
    Sub Verif_Rapport
    	msglog "0","0000","---Debut:------- Verification que le Dossier Rapport n'est pas vide vide pour le centre " & centre
    	If objFSO.FolderExists(Source) Then
    		Set objFolder = objFSO.GetFolder(Source)
    		If objFolder.Files.Count = 0 And objFolder.SubFolders.Count = 0 Then
    	msglog "1","0001","---WARNING:------- Traitement annulé le Dossier Rapport est vide pour le centre " & centre
    		wscript.quit (8)
    		Else
    	msglog "0","0000","---Resultat:---- Le Dossier Rapport n'est pas vide pour le centre " & centre
    		End If
    	End If
    	msglog "0","0000","---Fin:--------- Verification que le Dossier Rapport n'est pas vide vide pour le centre " & centre
    End Sub
     
    '---------------------------------------------------------------------------------------------------------------------------------------
    'Test si le dossier Rap_temp est bien absent OK = Création  = Si présent  =  Warning Arrêt du Traitement pour chaque centre
    '---------------------------------------------------------------------------------------------------------------------------------------
     
    Sub Verif_Rap_temp
    	msglog "0","0000","---Debut:------- Verification que le Dossier Rap_temp n'existe pas pour le centre " & centre
    	set objFSOC = CreateObject("Scripting.FileSystemObject")
    If objFSOC.FolderExists (Safe) Then
    	Msglog "1","0001","---WARNING:----- Traitement annulé le Dossier Rap_temp existe déja pour le centre" & centre
    		wscript.quit (8)
    		Else
    	msglog "0","0000","---Resultat:---- Le Dossier Rap_temp n'existe pas donc il est créé pour le centre " & centre
    	msglog "0","0000","Safe=" & Safe
    Set objFolderC = objFSOC.CreateFolder(Safe)
    End If
    	msglog "0","0000","---Fin:--------- Verification que le Dossier Rap_temp n'existe pas pour le centre " & centre	
    End Sub
     
    '----------------------------------------------------------------------------------
    'Copie des fichiers de + de 30 jours Source dans le dossier Rap_temp
    '----------------------------------------------------------------------------------
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
     AgeMaximalFichiers = 32
      DateSysteme = Date
     
    Sub Copie_des_fichiers()
    	msglog "0","0000","---Debut:------- Copie des fichiers dans le Dossier Rap_temp pour le centre " & centre
    Set Fold = objfso.Getfolder(Source)
    	msglog "0","0000","---Fin:--------- Copie des fichiers dans le Dossier Rap_temp pour le centre " & centre
    	For Each Fich In Fold.Files
    		If (DateDiff("d", Fich.DateLastModified, DateSysteme ) < AgeMaximalFichiers) Then
    Else
    		If Fich.Attributes And 1 Then Fich.Attributes = Fich.Attributes - 1
    		Fich.Copy Safe & "\" , True
    		End If
        Next
    End Sub
     
    '---------------------------------------------------------------------------------------------------
    'Compression du dossier safe contenant les fichier.bak de + de 30 jours pour chaque centre
    '---------------------------------------------------------------------------------------------------
     
    Sub Compress 
    Set oShell = Wscript.CreateObject("Wscript.Shell")
    	msglog "0","0000","---Debut:------- Compression du Dossier " & Destination & " pour le centre " & centre
    ZIP_CMD = "D:\7-Zip\7z.exe"
    oShell.Run  chr(34) & ZIP_CMD  & chr(34) & " a -tzip -y " & Destination & "  " &  Safe, 0,True
    	msglog "0","0000","---Fin:--------- Compression du Dossier " & Destination & " pour le centre " & centre
    End sub
     
    '-----------------------------------------------------------
    'Suppression du dossier Rap_temp pour chaque centre
    '-----------------------------------------------------------
    Sub Supp_Rap_temp
    	msglog "0","0000","---Debut:------- Suppression du Dossier Rap_temp pour le centre " & centre
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    oFSO.DeleteFolder "K:\Sauvegarde\Formation_" & plaque & "\Rapport\"& Centre &"\Rap_temp",True
    	msglog "0","0000","---Fin:--------- Suppression du Dossier Rap_temp pour le centre " & centre
    End sub
     
    '---------------------------------------------------------------------------------------------------------
    'Suppression des fichiers de + de 30 jours dans le dossier Source pour chaque centre
    '---------------------------------------------------------------------------------------------------------
     
    Sub Supp_fichiers()
    	msglog "0","0000","---Debut:------- Suppression des fichiers de + de 30 jours dans le dossier Source pour le centre " & centre
    Set Folder = fso.Getfolder(Source)
    	msglog "0","0000","---Fin:--------- Suppression des fichiers de + de 30 jours dans le dossier Source pour le centre " & centre
    	For Each Fich In Fold.Files
    		If (DateDiff("d", Fich.DateLastModified , DateSysteme ) < AgeMaximalFichiers) Then
    Else		
    		    Fich.Delete ()
    		End If
    	Next
    End Sub
     
    '------------------
    ' Corps su script
    '------------------
     
    msglog "0","0000","---Debut:------- Sauv_Rapport.vbs "
    Verif_Rapport
    Verif_Rap_temp
    Copie_des_fichiers
    Compress
    Supp_Rap_temp
    Supp_fichiers
    msglog "0","0000","---Fin:--------- Sauv_Rapport.vbs"
    FileLog.Close

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    ....
    Fevrier 28
    ......
    Il semblerai que tu ais un problème pour trouver le dernier jour du mois pour une année quelconque.
    Comment connaître le dernier jour du mois ?
    Le principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        MeDate = "01/" & Month(Date) & "/" & Year(Date)
        MeDate = DateAdd("m", 1, MeDate) 'ajoute 1 mois
        MeDate = DateAdd("d", -1, MeDate) ' retranche 1 jours, résultat = dernier jour du mois
    un autre exemple pour février 2012
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        MeDate = "01/02/2012"
        MeDate = DateAdd("m", 1, MeDate) 'ajoute 1 mois
        MeDate = DateAdd("d", -1, MeDate) ' retranche 1 jours
    msgbox Medate
    soit le 29/02/2012
    un dernier exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        MeDate = "01/02/2013"
        MeDate = DateAdd("m", 1, MeDate) 'ajoute 1 mois
        MeDate = DateAdd("d", -1, MeDate) ' retranche 1 jours
    msgbox Medate
    soit le 28/02/2013
    Autre lien: Comment connaître les dates de création, de dernière modification et de dernier accès d'un fichier ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

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

Discussions similaires

  1. Traitement de gros fichiers
    Par Seth77 dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2006, 15h53
  2. Java et XML : Traitement d'un fichier XML avec JAVA
    Par nice dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 18/05/2006, 21h24
  3. [INFO] Traitement d'un fichier texte
    Par doudine dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 25/04/2006, 09h23
  4. [VBA-E]Traitement d'un fichier excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2006, 14h28
  5. [C#] [XML] Traitement de gros fichiers XML (90 Mo)
    Par Pulsahr dans le forum Windows Forms
    Réponses: 20
    Dernier message: 01/12/2005, 14h40

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