drikce06
Messages postés2236Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200810 14 déc. 2006 à 14:57
Ne met pas réponse accepté, tu n'as pas résolu ton problème encore! Par contre si JMO passe par là, il te fera un joli script comme àson habitude je pense!
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 14 déc. 2006 à 15:46
Bonjour à tous
Merci Drikce06 !!!
J'arrive, je viens juste de finir mon job...
Apparemment, questions récurrentes.
Aller... on va assembler plusieurs bouts de code...
Et julien, qu'est-ce qu'il fait ?
jean-marc
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 14 déc. 2006 à 16:23
Re,
Voici déjà un petit début de code.
Pour le reste on va attendre les précision de notre ami.
Je vais non plus tout faire.... j'ai un travail aussi ... [auteurdetail.aspx?ID= 193952 (famillelescure ]SOIS PRECIS
Dim Fso
Set Fso = CreateObject ("Scripting.FileSystemObject")
Dim Fil
'Pour chaque Fichier contenu dans le repertoire
For Each Fil In Fso.GetFolder(Repertoire).Files
'Si c'est la date de modification qui veut dire les fichiers de moins de 7 jour
' => toujours etre le plus precis possible
If Date - Fil.DateLastModified < 7) Then
MsgBox Fil.Name
End If
'Si c'est la date de creéation qui veut dire les fichiers de moins de 7 jour
'=> toujours etre le plus precis possible
If Date - Fil.DateCreated < 7) Then
MsgBox Fil.Name
End If
Next
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 14 déc. 2006 à 16:26
Re,
Mais je viens de voir l'historique des de tes messages [auteurdetail.aspx?ID= 193952 famillelescure ]
Et ce topic ou [auteurdetail.aspx?ID =9517 JMO] t'avais déjà répondu... tu pourrais l'adapter et repondre seul à tes besoin (=> d'ailleurs l'autre poste l'estimes tu résolu ou pas, si oui pense au bouton réponse acceptée la tu as le droit.....)
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 14 déc. 2006 à 16:36
Re,
Salut julien, no remember de ce post
Simple à adapter.....de toutes façons, les réponses aux 3 questions sont sur le forum et codyx.
Je regarderai ce soir pour y rajouter les subfolders et une recherche.
D'ailleurs, ouvrir le fichier, oui, je veux bien si ça sous-entend un filetextstream (.txt,.vbs, etc ???).
En bin, je n'ai jamais testé.
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 14 déc. 2006 à 21:19
Re,
J'ai adapté un script qui permettait de modifier la longueur des folders et files.
Un fichier de contrôle est créé dans le path du script.
le script n'est pas trop commenté, mais ça va venir.
Petit clin d'oeil pour l'utilisation du Dictionary.
J'ai testé sur .txt et .vbs
Dim Fso, RootFolder, SelectedFiles, SelectedFolders, FicLog
Set fso = CreateObject("Scripting.FileSystemObject")
If Fso.FolderExists(RootPath) Then
Set RootFolder = fso.GetFolder(RootPath)
Set SelectedFiles = CreateObject("Scripting.Dictionary")
Set SelectedFolders = CreateObject("Scripting.Dictionary")
'Ce fichier sert à contrôler
Set FicLog = fso.CreateTextFile(".\fichier_tempry.tmp")
Call SearchFolders(RootFolder)
WScript.Echo "Le mot """ & MonMot & """ a été trouvé dans " & SelectedFiles.Count & " fichiers"
Else
WScript.Echo "repertoire inconnu " & RootPath
End if
Set SelectedFiles = Nothing
Set SelectedFolders = Nothing
Set RootFolder = Nothing
Set FicLog = Nothing
Set Fso = Nothing
WScript.Echo "Traitement terminé!"
WScript.Quit
Sub SelectFile(ArgFile)
If UCase(Right(ArgFile,4)) = UCase(Extension) Then
Dim strListe, fdate, dtDiffFile, oTemp
If DateDiff("d",ArgFile.DateLastModified ,Date) <7 then
'MsgBox ArgFile.Name &vbCrLf& ArgFile.DateLastModified
Call RechercherMot(ArgFile)
End If
End If
End Sub
Sub SelectFolder(ArgFolder)
'commandes pour modifier le nom du folder
'Set SelectedFolders(ArgFolder.Path) = ArgFolder
'Call ModifyName(ArgFolder)
End Sub
Sub SearchFolders(ArgFolder)
Dim file, subfolder
For Each file In ArgFolder.Files
Call SelectFile(file)
Next
For Each subfolder In ArgFolder.SubFolders
Call SelectFolder(subfolder)
Call SearchFolders(subfolder)
Next
End Sub
Sub RechercherMot(ArgFile)
Dim objFso
Set objFso = CreateObject("Scripting.FileSystemObject")
If Len(MonMot) > 0 Then
Dim objFichier, oTable, oLigne
Set objFichier = objFso.OpenTextFile(fso.GetParentFolderName(ArgFile) & "" & ArgFile.Name, ForReading)
oTable = Split(objFichier.ReadAll, MonMot, -1, 1)
If UBound(oTable) <> 0 Then
'MsgBox ArgFile,,"CONTROLE"
oLigne = UBound(oTable) & vbTab & " fois dans le fichier """ & ArgFile &"""" &vbTab
FicLog.WriteLine oLigne &vbTab& ArgFile.DateLastModified
Set SelectedFiles(ArgFile.Path) = ArgFile
Else
Exit Sub
End If
objFichier.Close
Set objFichier = Nothing
End If
Set objFso = Nothing
End Sub
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 15 déc. 2006 à 08:21
Bonjour à tous
Correction de 2 erreurs:
- vérif que fichier .txt non vide;
- fermeture du fichier .txt
Sub RechercherMot(ArgFile)
Dim objFso
Set objFso = CreateObject("Scripting.FileSystemObject")
If Len(MonMot) > 0 And ArgFile.Size <> 0 Then
'MsgBox argfile
Dim objFichier, oTable, oLigne
Set objFichier = objFso.OpenTextFile(fso.GetParentFolderName(ArgFile) & "" & ArgFile.Name, ForReading)
oTable = Split(objFichier.ReadAll, MonMot, -1, 1)
objFichier.Close
Set objFichier = Nothing
If UBound(oTable) <> 0 Then
'MsgBox ArgFile,,"CONTROLE"
oLigne = UBound(oTable) & vbTab & " fois dans le fichier """ & ArgFile &"""" &vbTab
FicLog.WriteLine oLigne &vbTab& ArgFile.DateLastModified
Set SelectedFiles(ArgFile.Path) = ArgFile
Else
Exit Sub
End If
End If
Set objFso = Nothing
End Sub
famillelescure
Messages postés10Date d'inscriptionsamedi 15 novembre 2003StatutMembreDernière intervention15 décembre 2006 15 déc. 2006 à 09:41
Merci de votre participation mais j'ai trouvé la solution voici le code que j'ai trouvé :
Option Explicit
Dim fso,Dossiers,fic,fichiers,strListe,f,fdate,fname,dtDiffFile,Flux,Path,args,nbjour,cmp,carac
Set args = Wscript.Arguments
Path = args(0)
nbjour = args(1)
carac = args(2)
ShowFolderList(Path)
Function ShowFolderList(strPath)
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(path)
Set fic = Dossiers.Files
For Each fichiers in fic
Set f = fso.GetFile(fichiers)
fdate = f.DateLastModified
fname = f.Name
dtDiffFile = DateDiff("d", Now, fdate)
If dtDiffFile <= -nbjour Then
If Instr(fname,carac) Then
strListe = strListe & vbcrlf & fname & " " & fdate
fso.DeleteFile(Path & fname)
WScript.Echo("Fichier " & path & fname & " supprimé")
End If
End If
Next
Set fso = Nothing
Set Dossiers = Nothing
Set f = Nothing
End Function
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 15 déc. 2006 à 09:58
Salut,
Avec une bonnne mise en page... ceci donne.
Option Explicit
Dim fso, Dossiers, fic, fichiers, strListe
Dim f, fdate, fname, dtDiffFile, Flux, Path
Dim args, nbjour, cmp, carac
Set args = WScript.Arguments
Path = args(0)
nbjour = args(1)
carac = args(2)
ShowFolderList (Path)
Function ShowFolderList(strPath)
Set fso = CreateObject ("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(Path)
Set fic = Dossiers.Files
For Each fichiers In fic
Set f = fso.GetFile(fichiers)
fdate = f.DateLastModified
fname = f.Name
dtDiffFile = DateDiff ("d", Now, fdate)
If dtDiffFile < = -nbjour Then
If InStr(fname, carac) Then
strListe = strListe & vbCrLf & fname & " " & fdate
fso.DeleteFile (Path & fname)
WScript.Echo ("Fichier " & Path & fname & " supprimé")
End If
End If
Next
Set fso = Nothing
Set Dossiers = Nothing
Set f = Nothing
End Function
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 15 déc. 2006 à 13:09
Bonjour à tous
Salut Julien et Drikce, on en revient toujours au même problème: l'énoncé du topic !!!
Enfin.... ma suggestion peut éventuellement servir pour une recherche plus approfondie.
Mais, je ne suis pas encore "perturbé" (topic de samedi, je crois).