marie059
Messages postés1Date d'inscriptionjeudi 7 décembre 2000StatutMembreDernière intervention 1 avril 2008
-
1 avril 2008 à 15:30
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
2 avril 2008 à 07:12
Bonjour
je dois crée un script en vbscript qui dans un dossier et sous dossier choisi authorisera uniquement la lecture pour les fichiers dont la date de cration date de plus de 2 jours ...
étant donné que je connais pas le language je galère pas mal
pouvez vous m'aider svp ?
j'ai trouver un script qui liste les fichiers et sous dossier dans le repertoire choisi
Dim shellO: Set ShellO = CreateObject("WScript.Shell")
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim SListe: Dim Schemin
'Dossier à traiter
Schemin = "C:\stock" 'emplacement du dossier
'Dossier Bureau de windows + ""
SListe = ShellO.SpecialFolders("Desktop")
If Right(SListe, 1) <> "" Then SListe = SListe & ""
'Ouverture du fichier contenant l'arborescence du répertoire à traiter vers le Bureau
Dim Fichier: Set Fichier = FSO.CreateTextFile(SListe & "Liste.txt", 1, True)
'Écrire la premiere ligne de la liste
Fichier.WriteLine (Schemin)
'Lister l'arborescence du dossier
ListerDossier Schemin, Fichier
'Fermeture du fichier contenant l'arborescence du répertoire à traiter
Fichier.Close
Function ListerDossier(Schemin, Fichier) 'Lister l'arborescence du dossier
On Error Resume Next
Dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim ObjRep: Set ObjRep = FSO.GetFolder(Schemin) 'dossier
Dim ObjSubRep: Set ObjSubRep = ObjRep.SubFolders 'sous-dossiers
Dim ObjSubRepItem
For Each ObjSubRepItem In ObjSubRep 'Traiter chaque sous-dossiers
Fichier.WriteLine (ObjSubRepItem.Path) 'Ecrire le path dans la liste
ListerDossier ObjSubRepItem.Path, Fichier 'traiter les sous-dossiers
Next
Dim ObjRepFind: Set ObjRepFind = FSO.GetFolder(Schemin) 'dossier
Dim ObjSubFile: Set ObjSubFile = ObjRepFind.Files 'Fichiers
Dim ObjSubFileItem
For Each ObjSubFileItem In ObjSubFile 'Traiter chaque fichier du répertoire
Fichier.WriteLine ObjSubFileItem.Path 'Ecrire le path dans la liste
Next
End Function
un autre qui m'indique depuis combien de temps le fichier choisi à été crée
dim MaDate
set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Documents and Settings\abenabdallah\Bureau\Nouveau Document Microsoft Word.doc")
MaDate = objFile.DateCreated
wscript.Echo "il s'est écoulé " & DateDiff("d",now,Madate) & " Jours" & vbCrlf & " depuis le " & Madate
ce que je n'arrive pas à faire c'est dans un premier temps faire en sorte qu'il me liste uniquement les fichiers dont la date de création est superieur à 2 jours
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 2 avril 2008 à 07:12
Bonjour,
Exemple avec un Dictionary:
Option Explicit
Sub CreateFilesList(argFolder)
Dim objFile, subFolder
For Each objFile In argFolder.Files
If DateDiff("d", objFile.DateCreated,Date) > cstNbrJour Then
Set objDicoFiles(objFile.Path) = objFile
End if
Next
For Each subFolder In argFolder.SubFolders
Call CreateFilesList(subFolder)
Next
End Sub
Const cstNbrJour = 2
Dim objFso, objDicoFiles
Dim strPath, arrDicoKeys, i, strResult
strPath = "F:\SCRIPTS\TEST" 'Dossier à modifier
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objDicoFiles = CreateObject("Scripting.Dictionary")
'Parcours arborescence et incrémentation Dictionnaire
Call CreateFilesList(objFso.GetFolder(strPath))
'Enumération Dictionnaire
arrDicoKeys = objDicoFiles.Keys
For i = 0 To objDicoFiles.Count-1
strResult = strResult &vbCr& arrDicoKeys(i)
Next
MsgBox strResult