Effacer fichier de plus de 15 jours

Effacer fichier de plus de 15 jours - VB/VBA/VBS - Programmation

Marsh Posté le 07-09-2006 à 10:27:42    

je suis débutant en vbs,
j'ai recupérer ce script qui me permet de choisir l'emplacement d'un dossier
 et ensuite le prog se charge de nettoyer les fichiers de plus de 15 jours.
je voudrais modifier ce code de façon a avoir une variable cheminAScanner fixe et non plus le navigateur qui se lance pour choisir l'emplacement
 (dans le but de lancer ce prog tout les matins sur un serveur et ainsi nettoyer des répertoires des utilisateurs)
et de plus quand je lance ce prog  j'ai mon lecteur disquette qui s'active, et je ne vois pas d'ou cela provient...

Code :
  1. '*******************************************************************************
  2.     ' Script permettant D 'effacer les fichiers Qui date de plus de 15 jours
  3.     ' Avec interface Graphique
  4.     '
  5.     '*******************************************************************************
  6.    
  7.    
  8.     strComputer = "."
  9.    
  10.    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2" )
  11.    Set objFSO = CreateObject("Scripting.FileSystemObject" )
  12.    Set objShell = CreateObject("Shell.Application" )       
  13.    Set objFolder = objShell.BrowseForFolder _
  14.        (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, "." )
  15.    Set objFolderItem = objFolder.Self
  16.    strFolderName = objFolderItem.Path
  17.    
  18.    Set colSubfolders = objWMIService.ExecQuery _
  19.        ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
  20.            & "Where AssocClass = Win32_Subdirectory " _
  21.                & "ResultRole = PartComponent" )
  22.    
  23.    'Wscript.Echo strFolderName
  24.    
  25.    arrFolderPath = Split(strFolderName, "\" )
  26.    strNewPath = ""
  27.    For i = 1 to Ubound(arrFolderPath)
  28.        strNewPath = strNewPath & "\\" & arrFolderPath(i)
  29.    Next
  30.    strPath = strNewPath & "\\"
  31.    
  32.    Set colFiles = objWMIService.ExecQuery _
  33.        ("Select * from CIM_DataFile where Path = '" & strPath & "'" )
  34.    
  35.    For Each objFile in colFiles
  36.        Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
  37.         'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
  38.     if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
  39.    
  40.        objFile.delete
  41.     end if
  42.    Next
  43.    
  44.    For Each objFolder in colSubfolders
  45.        GetSubFolders strFolderName
  46.    Next
  47.    
  48.    Sub GetSubFolders(strFolderName)
  49.        Set colSubfolders2 = objWMIService.ExecQuery _
  50.            ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
  51.                & "Where AssocClass = Win32_Subdirectory " _
  52.                    & "ResultRole = PartComponent" )
  53.    
  54.        For Each objFolder2 in colSubfolders2
  55.            strFolderName = objFolder2.Name
  56.            'Wscript.Echo
  57.            'Wscript.Echo objFolder2.Name
  58.            arrFolderPath = Split(strFolderName, "\" )
  59.            strNewPath = ""
  60.            For i = 1 to Ubound(arrFolderPath)
  61.                strNewPath = strNewPath & "\\" & arrFolderPath(i)
  62.            Next
  63.            strPath = strNewPath & "\\"
  64.    
  65.            Set colFiles = objWMIService.ExecQuery _
  66.                ("Select * from CIM_DataFile where Path = '" & strPath & "'" )
  67.    
  68.            For Each objFile in colFiles
  69.            Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
  70.            if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
  71.                'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
  72.                objFile.delete
  73.    
  74.              end if
  75.    
  76.            Next
  77.    
  78.            GetSubFolders strFolderName
  79.        Next
  80.    End Sub

Reply

Marsh Posté le 07-09-2006 à 10:27:42   

Reply

Marsh Posté le 08-09-2006 à 09:14:50    

rira a écrit :

je suis débutant en vbs,
j'ai recupérer ce script qui me permet de choisir l'emplacement d'un dossier
 et ensuite le prog se charge de nettoyer les fichiers de plus de 15 jours.
je voudrais modifier ce code de façon a avoir une variable cheminAScanner fixe et non plus le navigateur qui se lance pour choisir l'emplacement
 (dans le but de lancer ce prog tout les matins sur un serveur et ainsi nettoyer des répertoires des utilisateurs)
et de plus quand je lance ce prog  j'ai mon lecteur disquette qui s'active, et je ne vois pas d'ou cela provient...

Code :
  1. '*******************************************************************************
  2.     ' Script permettant D 'effacer les fichiers Qui date de plus de 15 jours
  3.     ' Avec interface Graphique
  4.     '
  5.     '*******************************************************************************
  6.    
  7.    
  8.     strComputer = "."
  9.    
  10.    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2" )
  11.    Set objFSO = CreateObject("Scripting.FileSystemObject" )
  12.    Set objShell = CreateObject("Shell.Application" )       
  13.    Set objFolder = objShell.BrowseForFolder _
  14.        (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, "." )
  15.    Set objFolderItem = objFolder.Self
  16.    strFolderName = objFolderItem.Path
  17.    
  18.    Set colSubfolders = objWMIService.ExecQuery _
  19.        ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
  20.            & "Where AssocClass = Win32_Subdirectory " _
  21.                & "ResultRole = PartComponent" )
  22.    
  23.    'Wscript.Echo strFolderName
  24.    
  25.    arrFolderPath = Split(strFolderName, "\" )
  26.    strNewPath = ""
  27.    For i = 1 to Ubound(arrFolderPath)
  28.        strNewPath = strNewPath & "\\" & arrFolderPath(i)
  29.    Next
  30.    strPath = strNewPath & "\\"
  31.    
  32.    Set colFiles = objWMIService.ExecQuery _
  33.        ("Select * from CIM_DataFile where Path = '" & strPath & "'" )
  34.    
  35.    For Each objFile in colFiles
  36.        Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
  37.         'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
  38.     if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
  39.    
  40.        objFile.delete
  41.     end if
  42.    Next
  43.    
  44.    For Each objFolder in colSubfolders
  45.        GetSubFolders strFolderName
  46.    Next
  47.    
  48.    Sub GetSubFolders(strFolderName)
  49.        Set colSubfolders2 = objWMIService.ExecQuery _
  50.            ("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
  51.                & "Where AssocClass = Win32_Subdirectory " _
  52.                    & "ResultRole = PartComponent" )
  53.    
  54.        For Each objFolder2 in colSubfolders2
  55.            strFolderName = objFolder2.Name
  56.            'Wscript.Echo
  57.            'Wscript.Echo objFolder2.Name
  58.            arrFolderPath = Split(strFolderName, "\" )
  59.            strNewPath = ""
  60.            For i = 1 to Ubound(arrFolderPath)
  61.                strNewPath = strNewPath & "\\" & arrFolderPath(i)
  62.            Next
  63.            strPath = strNewPath & "\\"
  64.    
  65.            Set colFiles = objWMIService.ExecQuery _
  66.                ("Select * from CIM_DataFile where Path = '" & strPath & "'" )
  67.    
  68.            For Each objFile in colFiles
  69.            Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
  70.            if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>15 then
  71.                'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
  72.                objFile.delete
  73.    
  74.              end if
  75.    
  76.            Next
  77.    
  78.            GetSubFolders strFolderName
  79.        Next
  80.    End Sub



 
   Set objFolder = objShell.BrowseForFolder _
       (WINDOW_HANDLE, "Selectionner le dossier à traiter :", NO_OPTIONS, "." )
   Set objFolderItem = objFolder.Self
   strFolderName = objFolderItem.Path

   strFolderName = Chemin à scanner
 
 
Pour le lecteur de disquettes, je ne sais pas, peut-être un effet secondaire d'une des lib  [:beckaman007]  
 
Ca n'empêchera pas le truc de fonctionner, mais je trouve que c'est un peu usine à gaz  [:canaille]


Message édité par agkklr le 08-09-2006 à 09:15:51

---------------
"Mon modèle, c'est moi-même."
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed