Script/outils pour calcul fichiers non utilisés

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!!!

:wink: 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

++