supinfo
Ouverture de  SUPINFO USA à San Francisco en 2008. Des études en informatique en Californie à un tarif abordable ! Inscrivez-vous dès maintenant !
supinfo
Connexion :

Recherche

  
   Tout| Actus| Télécharger| Comparateur de prix| Dossiers| Forums| Jeux| Google

13 messages
ok

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
 
 
Voir profilContacter le membre
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.
 
 
Voir profilContacter le membre
Si tu n'es pas trop à cheval sur l'ordre des champs tu peux faire un petit .bat à placer à la racine de ton disque :
Code :
@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
Code :
@echo off 
(for /R %%I in (*) do echo %%~zI %%I) | sort > res.txt
 
 
Peut-être ça : Replisting.exe
ou ça : PlaceDisk
ou ça : TreeSize
 
 
Voir profilContacter le membre
"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:
Code :
(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
 
 
Voir profilContacter le membre
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.
Code :
@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
 
 
Voir profilContacter le membre
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
Code :
@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....:)
On ne lit pas mes réponses.... :(
 
 
Nostradamus a écrit:
C'est ce que je te disais plus haut....:)
On ne lit pas mes réponses.... :(
En effet, désolé celle là je ne l'avais pas vue...

Merci!!!:D

gcc a écrit:
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.
ça j'étais au courant, merci quand meme :)
Et, je viens seulement de voir que tu avais mis les détails....:(
 
 
 
13 messages
ok
 
Vous devez être connecté pour écrire un message !
 

 Sujets Similaires:


 
Clubic.com
 
Achetez-facile.com
 
Jeuxvideo.fr
 
neteco.com
 
mobinaute.com