Comment lister des fichiers dont la taille est supérieur à ?

Le
elminio
Bonjour à tous,
Je suis à la recherche d'un script qui me liste l'ensemble des fichiers d=
ont la taille est supérieur à X Mo dans les dossiers et sous-dossiers.
Cdt,
Elminio
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #25246782
a écrit, le 13/02/2013 16:49 :
Bonjour à tous,
Je suis à la recherche d'un script qui me liste l'ensemble des fichie rs dont la taille est supérieur à X Mo dans les dossiers et sous-doss iers.
Cdt,
Elminio




Bonjour,

Le chemin du répertoire principal de la partie à traiter est reçu e n
argument. La taille maximale est exprimée sur la première ligne, en
octets donc Taille = 1000000 X : dans l'exemple, j'ai fait le test sur 1
Ko de taille maximale, si on veut 1 Mo il faut mettre 1000 fois plus.

En rectifiant quand même la conversion, car j'ai exprimé un kilo-octe t
pour 1000 octets, alors qu'en fait c'est 1024, et pareil pour les
méga-octets exprimés en kilo-octets.

J'ai affiché les noms des sous-répertoires, si on ne les veut pas c'e st
facile à mettre en commentaire, dans la dernière boucle.

Exécuter ce script sous CScript pour avoir les résultats dans une
fenêtre de lignes de commandes, car si on l'exécute sous WScript, on
aura une boîte de message par fichier, plus une par répertoire.

On peut remplacer, sur la ligne WScript.Echo, Fil.Path par Fil.Name, si
on veut une ligne plus courte.

========= Début ListeTaille.vbs ======= ====
Taille = 1000
Set FSO = Wscript.CreateObject("Scripting.FileSystemObject")
Set Shell = Wscript.CreateObject("Wscript.Shell")

On Error Resume Next
Traite FSO.GetFolder(WScript.Arguments(0))

Sub Traite(Fld)
On Error Resume Next
For Each Fil in Fld.Files
siz = FormatNumber(Fil.Size, 0, -2, -2, -2)
If Fil.Size > Taille Then
WScript.Echo Fil.DateLastModified, Space(20 - Len(siz)) & siz,
Fil.Path
End IF
Next
For Each Sfld in Fld.SubFolders
WScript.Echo Sfld.DateLastModified, "<REP> ", Sfld.Name
Traite Sfld
Next
End Sub

========== Fin ListeTaille.vbs ======== ====
Gloops
Le #25475372
Ah oui, et au bout de quatre mois ça n'intéresse toujours personne.
Ah ben si j'avais su, je me serais abstenu ...
Michel__D
Le #25476972
Bonjour,

Le 12/06/2013 10:36, Gloops a écrit :
Ah oui, et au bout de quatre mois ça n'intéresse toujours personne.
Ah ben si j'avais su, je me serais abstenu ...




Je ne sais pas ce que tu recherche mais voici peut être un début (fait rapidement sur W7) :

@Echo Off
Set /P SRC=Veuillez indiquer la source (exemple D:) :
Echo.
Set /P SIZE=Veuillez indiquer la taille recherchée :
SetLocal EnableDelayedExpansion EnableExtensions

For /F "tokens=* delims= " %%i In ('Dir %SRC%') Do (
Set ARG=%%i
Set ARG1 If "!ARG:~10,2!" EQU " " (
If /I "!ARG:~22,3!" NEQ "REP" (
If "!ARG:~18,1!" NEQ " " Set ARG1=!ARG:~18,1!
If "!ARG:~20,3!" NEQ " " Set ARG1=!ARG1!!ARG:~20,3!
If "!ARG:~24,3!" NEQ " " Set ARG1=!ARG1!!ARG:~24,3!
If "!ARG:~28,3!" NEQ " " Set ARG1=!ARG1!!ARG:~28,3!
If "!ARG:~32,3!" NEQ " " Set ARG1=!ARG1!!ARG:~32,3!
If !ARG1! GTR %SIZE% Echo !ARG!
)
)
)
Gloops
Le #25477272
Michel__D a écrit, le 12/06/2013 20:14 :
Bonjour,

Le 12/06/2013 10:36, Gloops a écrit :
Ah oui, et au bout de quatre mois ça n'intéresse toujours personne .
Ah ben si j'avais su, je me serais abstenu ...




Je ne sais pas ce que tu recherche mais voici peut être un début (f ait
rapidement sur W7) :

@Echo Off
Set /P SRC=Veuillez indiquer la source (exemple D:) :
Echo.
Set /P SIZE=Veuillez indiquer la taille recherchée :
SetLocal EnableDelayedExpansion EnableExtensions

For /F "tokens=* delims= " %%i In ('Dir %SRC%') Do (
Set ARG=%%i
Set ARG1=
If "!ARG:~10,2!" EQU " " (
If /I "!ARG:~22,3!" NEQ "REP" (
If "!ARG:~18,1!" NEQ " " Set ARG1=!ARG:~18,1!
If "!ARG:~20,3!" NEQ " " Set ARG1=!ARG1!!ARG:~20,3!
If "!ARG:~24,3!" NEQ " " Set ARG1=!ARG1!!ARG:~24,3!
If "!ARG:~28,3!" NEQ " " Set ARG1=!ARG1!!ARG:~28,3!
If "!ARG:~32,3!" NEQ " " Set ARG1=!ARG1!!ARG:~32,3!
If !ARG1! GTR %SIZE% Echo !ARG!
)
)
)




Est-ce que tu as testé ce que j'ai fait ?
ça ne marche pas ?

--
Gloops
Le #25477262
Gloops a écrit, le 25/02/2013 18:42 :
a écrit, le 13/02/2013 16:49 :
Bonjour à tous,
Je suis à la recherche d'un script qui me liste l'ensemble des
fichiers dont la taille est supérieur à X Mo dans les dossiers et
sous-dossiers.
Cdt,
Elminio




Bonjour,

Le chemin du répertoire principal de la partie à traiter est reçu en
argument. La taille maximale est exprimée sur la première ligne, en
octets donc Taille = 1000000 X : dans l'exemple, j'ai fait le test su r 1
Ko de taille maximale, si on veut 1 Mo il faut mettre 1000 fois plus.

En rectifiant quand même la conversion, car j'ai exprimé un kilo-oc tet
pour 1000 octets, alors qu'en fait c'est 1024, et pareil pour les
méga-octets exprimés en kilo-octets.

J'ai affiché les noms des sous-répertoires, si on ne les veut pas c 'est
facile à mettre en commentaire, dans la dernière boucle.

Exécuter ce script sous CScript pour avoir les résultats dans une
fenêtre de lignes de commandes, car si on l'exécute sous WScript, o n
aura une boîte de message par fichier, plus une par répertoire.

On peut remplacer, sur la ligne WScript.Echo, Fil.Path par Fil.Name, si
on veut une ligne plus courte.

========= Début ListeTaille.vbs ======= ====
Taille = 1000
Set FSO = Wscript.CreateObject("Scripting.FileSystemObject")
Set Shell = Wscript.CreateObject("Wscript.Shell")

On Error Resume Next
Traite FSO.GetFolder(WScript.Arguments(0))

Sub Traite(Fld)
On Error Resume Next
For Each Fil in Fld.Files
siz = FormatNumber(Fil.Size, 0, -2, -2, -2)
If Fil.Size > Taille Then
WScript.Echo Fil.DateLastModified, Space(20 - Len(siz)) & siz,
Fil.Path
End IF
Next
For Each Sfld in Fld.SubFolders
WScript.Echo Sfld.DateLastModified, "<REP> ", Sfld.Na me
Traite Sfld
Next
End Sub

========== Fin ListeTaille.vbs ======= =====








Ah, mais je crois que j'ai deviné : je vois encore ce message, mais il
était sauvegardé en local chez moi, ça fait belle lurette qu'il n'é tait
plus sur les divers serveurs.

Autant pour moi, du coup si je ne le cite pas pour le rafraichir, il
faudrait être Madame Soleil ou assimilé pour comprendre, ou alors
Elminio avec une bonne mémoire ...

Ce qui me désole est que j'ai passé du temps là-dessus pour rien,
puisque dès le lendemain Elminio avait oublié où il avait posé sa
question, donc il n'a pas trouvé la réponse.


--
Publicité
Poster une réponse
Anonyme