Comment lister des fichiers dont la taille est supérieur à ?
5 réponses
elminio
Bonjour =E0 tous,
Je suis =E0 la recherche d'un script qui me liste l'ensemble des fichiers d=
ont la taille est sup=E9rieur =E0 X Mo dans les dossiers et sous-dossiers.
Cdt,
Elminio
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gloops
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 ======== ====
elminio@gmail.com 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
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
Ah oui, et au bout de quatre mois ça n'intéresse toujours personne. Ah ben si j'avais su, je me serais abstenu ...
Ah oui, et au bout de quatre mois ça n'intéresse toujours personne.
Ah ben si j'avais su, je me serais abstenu ...
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
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! ) ) )
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!
)
)
)
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
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 ?
--
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 ?
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
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.
--
Gloops a écrit, le 25/02/2013 18:42 :
elminio@gmail.com 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.
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.