Bonjour, :bs_help:
Je recherche un script ou un outils permettant de calculer l’espace occupé par les fichiers non utilisé depuis 3, 4, 5 ans…
La totalité des fichiers represente + de 5To.
Merci de votre aide
Bonjour,
Voici un bout de code Kix, attention il ne liste pas les fichiers du dossier de depart, que les sous dossiers.
Le resultat est en Mo.
$tempsrc = "n:path.src"
$copyfrom = "n:nometchemindudossier"
$Age = "1999/01/01 00:00:00"
$Size = 0
Shell "cmd.exe /C dir /s /b /ad "+ $copyfrom +" > "+ $tempsrc
If Open(2, $tempsrc, 2)=0
$folder = ReadLine(2)
DO
$FileName = Dir($folder +"*.*")
While $FileName <> "" AND @ERROR = 0
If $FileName = "." GoTo "suite" EndIf
If $FileName = ".." GoTo "suite" EndIf
? $FileName
If GetFileTime($folder +""+ $FileName) > $Age
$Size = $Size + GetFileSize($folder +""+ $FileName)
EndIf
:suite
$FileName = Dir()
Loop
$folder = ReadLine(2)
Until @error <>0
EndIf
? "______________________"
$Size = $Size / 1000000
? $Size
Merci beaucoup de ta réponse!!!
Mais je me suis débrouillé en REXX, avec la commande dir /t:a /od /s
/* REXX /
/**********************************************************************/
/ Chargement des fonctions Rexx /
/***********************************************************************/
Flg_Func_Rexx = 0
Result = RxFuncQuery(“SysLoadFuncs”)
if Result <> 0
then do
Result = RxFuncAdd(“SysLoadFuncs”,“RexxUtil”,“SysLoadFuncs”)
if Result <> 0
then do
exit 1
end
Result = SysLoadFuncs()
Flg_Func_Rexx = 1
end
/***********************************************************************/
/ Recherche ressource réseau librecents /
/**********************************************************************/
Redirect = " 1>nul 2>nul"
/ Redirect = " 1>>“Journal”.log 2>>“Journal”.err" /
DskEd = ""
Ressource = "\serveurnom du partage"
DskEd = ConnectDrvFree( ressource )
if DskEd <> ""
then do
say
say "La connexion … “Ressource” a r‚ussie"
say "Ressource = "DskED
end
else do
say
say "La connexion … “Ressource” a ‚chou‚e"
exit 2
end
/**********************************************************************/
/ Recherche fichiers sans accès récents /
/**********************************************************************/
/ trace ?R /
s_FichierTrav = DskEd’dir.lst’
s_FichierM3 = DskEd’FichM3.lst’
s_FichierM4 = DskEd’FichM4.lst’
s_FichierM5 = DskEd’FICHM5.lst’
call lineout s_FichierTrav
n_Retour=SysFileDelete( s_FichierTrav )
call lineout s_FichierM3
n_Retour=SysFileDelete( s_FichierM3 )
call lineout s_FichierM4
n_Retour=SysFileDelete( s_FichierM4 )
call lineout s_FichierM5
n_Retour=SysFileDelete( s_FichierM5 )
CptM5 = 0
CptM4 = 0
CptM3 = 0
DateS = Date( ‘S’ )
DateS = Space( DateS )
AAC = substr( DateS, 1, 4 )
AACM3 = AAC - 3
AACM4 = AAC - 4
AACM5 = AAC - 5
MMC = Substr( DateS, 5, 2 )
JJC = Substr( DateS, 7, 2 )
DateC = AAC"/“MMC”/“JJC
HeureS = Time()
HeureS = Space( HeureS )
Parse value HeureS with HH”:“MM”:“SS
HeureC = HH”:"MM
Say "date : "DateC
Say "Heure : "HeureC
say
OldRep = directory()
Rep = directory( DskEd )
'dir /t:a /od /s > 's_FichierTrav
do while lines( s_FichierTrav ) > 0
Ligne = linein( s_FichierTrav )
Ligne = Space( Ligne )
if Ligne = ‘’ then iterate
if Pos( “volume dans”, Ligne ) <> 0 then iterate
if Pos( “num‚ro de s‚rie du volume”, Ligne ) <> 0 then iterate
if Pos( “”, Ligne ) <> 0 then iterate
if Pos( “Total des fichiers list‚s”, Ligne ) <> 0 then leave
if Pos( “Nombre total de fichiers r‚pertori‚s”, Ligne ) <> 0 then leave
if Pos( “Fichier introuvable”, Ligne) <> 0 then leave
if Pos( “R‚pertoire”, Ligne ) <> 0
then do
/ C’est le d‚but du r‚pertoire /
/ réinitialisation des compteurs /
/ lecture nom répertoire /
/ effacement des fichiers /
NbFich = 0
parse value Ligne with Filler Filler “:” NomR
NomR = space( NomR )
Say "Debut Repertoire "NomR
iterate
end
if Pos( “fichier(s)”, Ligne) <> 0
then do
/ C’est la fin du r‚pertoire /
Say "Fin du repertoire "NomR
iterate
end
if Words( Ligne ) >= 4
then do
/ c’est un fichier /
Fich = Word( Ligne, 4)
DateF = Word( Ligne, 1)
DateF = Space( DateF )
HeureF = Word( Ligne, 2)
HeureF = Space( HeureF)
parse value DateF with JJF ‘/’ MMF ‘/’ AAF
Say "- “AAF”/“MMF”/“JJF” “HeureF” : “Fich
If AAF < AACM5
then do
CptM5 = CptM5 + 1
call Lineout s_FichierM5, CptM5” - “AAF”/“MMF”/“JJF” “HeureF” : “NomR”“Fich
end
If AAF < AACM4
then do
CptM4 = CptM4 + 1
call Lineout s_FichierM4, CptM4” - “AAF”/“MMF”/“JJF” “HeureF” : “NomR”“Fich
end
If AAF < AACM3
then do
CptM3 = CptM3 + 1
call Lineout s_FichierM3, CptM3” - “AAF”/“MMF”/“JJF” “HeureF” : “NomR”"Fich
end
end
end / do while /
call lineout s_FichierTrav
n_Retour=SysFileDelete( s_FichierTrav )
call lineout s_FichierM3
call lineout s_FichierM4
call lineout s_FichierM5
Rep = directory( OldRep )
if DskEd <> ‘’ then 'NET USE ‘DskEd’ /D 'Redirect
/**********************************************************************/
/ Lib‚ration des fonctions Rexx /
/***********************************************************************/
Result = RxFuncQuery(“SysDropFuncs”)
if Result = 0
then do
if Flg_Func_Rexx = 1
then do
Result = SysDropFuncs()
end
end
exit 0
/************************************************************************/
/************************************************************************/
/***********************************************************************/
/ Recherche ressource réseau libre /
/***********************************************************************/
ConnectDrvFree:
Arg Alias
TmpStr = SysDriveMap( ‘C:’, ‘FREE’ )
If ( TmpStr = ‘’ )
Then Do
Say
Say "ERREUR : Pas d’unit‚ disponible pour la connexion … "Alias
End
Else Do
TmpStr = Word(TmpStr, 1)
if left( Alias, 2 ) = ''
then do
’NET USE ‘TmpStr’ /D 'Redirect
’NET USE ‘TmpStr’ ‘Alias’ 'Redirect
If (RC <> 0)
Then Do
Say "Connexion impossible de “Alias” sur "TmpStr
TmpStr = ""
End
end
else do
’subst ‘TmpStr’ /D 'Redirect
’subst ‘TmpStr’ ‘Alias’ 'Redirect
If (RC <> 0)
Then Do
Say "Connexion impossible de “Alias” sur "TmpStr
TmpStr = ""
End
end
End
Return ( TmpStr )
/************************************************************************/
/************************************************************************/
Tu travail pour IBM :lol: :lol: :lol: ca fesait un bout de temps que je n’avais pas entendu parle rexx
Great job
++