Forum Clubic

Je n'arrive pas a remettre la main sur un logiciel

Bonjour,
j’ai cherché sur le net un logiciel, qui fait un scanne du disque dur selectionné et classe les fichiers (et peut etre les repertoires) dans l’ordre décroissant de leur taille).
Mon problème c’est que je n’arrive pas a remettre la main dessus, tout ce que j’ai trouvé ce sont des logiciels qui font une représention raphique, ce que je ne veux pas, ce n’est pas ce que je cherche.
Merci de votre aide

Cordialement
Edité le 11/11/2007 à 22:04

En mode commande :
Dir /o-s > res.txt

Si tu veux développer les sous répertoires :
dir /s /o-s > res.txt

je viens d’essaer mais ça n’est pas ce que je veux, car là il fait une liste par repertoire, alors que ce que je veux, c’est une grande liste pour tout le disque dur.
Comme ça je vois direct les plus gros.

Si tu n’es pas trop à cheval sur l’ordre des champs tu peux faire un petit .bat à placer à la racine de ton disque :


@echo off
(for /R %%I in (*) do echo %%~zI %%I) | sort > res.txt

Ensuite, une petite remise en forme de res.txt pour éliminer les lignes superflues

EDIT :
et après la mise en forme, un sort /R si tu tiens à l’ordre décroissant,
ou alors tu fais directement
(for /R %%I in (*) do echo %%~zI %%I) | sort /R > res.txt
mais ce sera moins lisible
Edité le 09/11/2007 à 22:38

En effet, pas très lisible…
De plus il ne me les range pas en ordre décroissant e utilisant

@echo off 
(for /R %%I in (*) do echo %%~zI %%I) | sort > res.txt

Peut-être ça : Replisting.exe
ou ça : PlaceDisk
ou ça : TreeSize

“De plus il ne me les range pas en ordre décroissant”

Pour le décroissant, il faut le parametre /R
Mais de toute manière, le résultat n’est pas satisfaisant dans la mesure où il prend la taille comme du texte et non comme un nombre.
Il faudrait reformater la taille, avec un awk par exemple.
C’est juste une ligne à rajouter, si tu ne trouves pas mieux on pourra essayer

Tu sais en commande MS-DOs, j’suis pas fortiche…

Je ne sais pas déchifrer:

(for /R %%I in (*) do echo %%~zI %%I) | sort > res.txt

le seul truc que je comprend c’est qu’il écrit le tout dans un fichier qui sera nommé res.txt

For -> on va examiner un par un le contenu décrit plus loin
/R -> faire la recherche sur le répertoire courant et ses sous répertoires
%I -> une variable pour stocker le nom du fichier en cours. Comme on est dans un batch et que % est un signe réservé, on le double (%%)
in (*) -> c’est l’étendue de la recherche : ici l’ensemble des fichiers qui seront donc traités un par un
do -> tout ce qui est derrière sera exécuté comme une nouvelle commande
echo %%~zI -> affiche la taille du fichier en cours
| (pipe) -> au lieu de donner le résultat de la commande précédente à l’écran, on le redirige en entrée de la commande sort

Pour plus de précisions, en mode commande, tape for /?, sort /? (en fait toute commande suivie de /?) et tu auras une aide détaillée sur l’usage de la commande en question.

Comme je te l’ai dit plus haut, ce que je t’ai donné pour le moment ne fonctionne pas de manière satisfaisante.
Je vais te donner (un peu plus tard) la syntaxe exacte de ce qu’il faudrait utiliser.

Déjà, dans un premier temps, tu peux essayer le code ci-dessous ; res1.txt devrait déjà plus se rapprocher de ce que tu cherches.


@echo off
if exist res.txt del res.txt
for /R %%I in (*) do echo %%~zI %%I >> res.txt
sort /R res.txt > res1.txt

Edité le 11/11/2007 à 10:02

Je n’ai pas trouvé de solution en mode commande pur.
Il y a certainement moyen à travers Set /a, mais je n’arrive pas à la faire fonctionner de manière satisfaisante.
Pour ceux qui voudraient se pencher sur le problème, il s’agit de faire fonctionner un set /a à l’intérieur d’une boucle for, sans qu’il retourne toujours la même valeur.

Sinon, il suffit de disposer de la commande gawk (gawk.exe à télécharger) et le code devient


@echo off
if exist res.txt del res.txt
for /R %%I in (*) do echo %%~zI %%I >> res.txt
gawk "{ printf(\"%%10d \" ,$1); print $2}" res.txt > res1.txt
sort /R res1.txt > res.txt

(résultat dans res.txt)

Là je suis totalement pômé…
Au niveau commande.

Je ne connais pas ton métier, mais si t’es pas dans le développement, ça m’étonne!

Bref, sinon, j’ai réussi a remettre la main sur mon logiciel… Désolé pour ces recherches pour rien…

Voilà son nom: Treesize

C’est ce que je te disais plus haut…:slight_smile:
On ne lit pas mes réponses… :frowning:

En effet, désolé celle là je ne l’avais pas vue…

Merci!!!:smiley:


[quote="gcc"] Pour plus de précisions, en mode commande, tape for /?, sort /? (en fait toute commande suivie de /?) et tu auras une aide détaillée sur l'usage de la commande en question. [/quote] ça j'étais au courant, merci quand meme :) Et, je viens seulement de voir que tu avais mis les détails....:(