Code BATCH
eljojo_e
Messages postés
1255
Statut
Membre
-
eljojo_e Messages postés 1255 Statut Membre -
eljojo_e Messages postés 1255 Statut Membre -
Bonjour,
Actuellement j'ai un petit fichier bat qui me sauvegarde tous les jours deux fichier access avec xcopy.
Les sauvegardes vont se placer dans deux dossiers nommer comme ceci :
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6%
set heure=%time:~0,8%
1er fichier
set a=Base-%annee%-%mois%-%jour%
2eme fichier
set aa=Source-%annee%-%mois%-%jour%
comment puis-je faire pour qu'automatiquement, le bat supprime les sauvegarde de plus de 2 mois ?
Merci d'avance,
Cordialement,
Actuellement j'ai un petit fichier bat qui me sauvegarde tous les jours deux fichier access avec xcopy.
Les sauvegardes vont se placer dans deux dossiers nommer comme ceci :
set jour=%date:~0,2%
set mois=%date:~3,2%
set annee=%date:~6%
set heure=%time:~0,8%
1er fichier
set a=Base-%annee%-%mois%-%jour%
2eme fichier
set aa=Source-%annee%-%mois%-%jour%
comment puis-je faire pour qu'automatiquement, le bat supprime les sauvegarde de plus de 2 mois ?
Merci d'avance,
Cordialement,
A voir également:
- Code BATCH
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Fichier batch - Guide
- Code activation windows 10 - Guide
2 réponses
En batch, je trouve sa relou par contre en VBS c'est sympa.
les parties en gras sont a modifier.Tu peux l'excuter avec une commande dans ton batch. Il scan dossier, sous-dossier, sous sous-dossier...
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2" )
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objShell = CreateObject("Shell.Application" )
strFolderName = ("Chemin du dossier")
Set colSubfolders = objWMIService.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent" )
arrFolderPath = Split(strFolderName, "\" )
strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_DataFile where Path = '" & strPath & "'" )
For Each objFile in colFiles
Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>nombre de jour then
objFile.delete
end if
Next
For Each objFolder in colSubfolders
GetSubFolders strFolderName
Next
Sub GetSubFolders(strFolderName)
Set colSubfolders2 = objWMIService.ExecQuery _
("Associators of {Win32_Directory.Name='" & strFolderName & "'} " _
& "Where AssocClass = Win32_Subdirectory " _
& "ResultRole = PartComponent" )
For Each objFolder2 in colSubfolders2
strFolderName = objFolder2.Name
arrFolderPath = Split(strFolderName, "\" )
strNewPath = ""
For i = 1 to Ubound(arrFolderPath)
strNewPath = strNewPath & "\\" & arrFolderPath(i)
Next
strPath = strNewPath & "\\"
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_DataFile where Path = '" & strPath & "'" )
For Each objFile in colFiles
Set objReadOnlyFile = objFSO.GetFile(objFile.Name)
if DateDiff("d",objReadOnlyFile.DateLastModified ,Date)>)>nombre de jour then
'Wscript.Echo objFile.Name & chr (10) & objReadOnlyFile.DateLastModified
objFile.delete
end if
Next
GetSubFolders strFolderName
Next
End Sub
les parties en gras sont a modifier.Tu peux l'excuter avec une commande dans ton batch. Il scan dossier, sous-dossier, sous sous-dossier...