[BATCH] Nombre de fichier ??

Nombre de fichier ?? [BATCH] - Shell/Batch - Programmation

Marsh Posté le 29-11-2007 à 13:48:20    

Bonjour,
 
je tente de récupérer le nombre de fichiers dans un répertoire et ses sous répertoire mais le script plante (ne s'arrete pas).
 

Code :
  1. @echo off
  2. set répertoire="d:\Chemin du répertoire"
  3. set /a compt=0
  4. dir /s /b /a:-d %répertoire% > c:\Reporting\Fichier.txt
  5. for /f "delims=" %%i in ('type c:\Reporting\Fichier.txt') do set /a compt+=1
  6. echo %compt% > c:\Reporting\NbrFichier.txt


 
La ligne "dir /s /b /a:-d %répertoire% > c:\Reporting\Fichier.txt" s'exécute bien mais le comptage de ligne dans ce fichier ne semble pas fonctionner.
Pour info, il y a 226 000 fichiers environs.
 
Merci de votre aide.
 
 :hello:  
 
Steve


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 13:48:20   

Reply

Marsh Posté le 29-11-2007 à 14:06:48    

Salut
 
tu peux faire un truc comme ca pour compter tes fichiers :

Code :
  1. dir /A-D /B | find "." /C


 
Inconvénient : le fichier doit avoir un point dans son nom (extension) et ca ne compte que les fichiers, pas les repertoires (mais ca tu peux le changer dans le /A-D )


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 29-11-2007 à 14:08:44    

SICKofitALL a écrit :

Salut
 
tu peux faire un truc comme ca pour compter tes fichiers :

Code :
  1. dir /A-D /B | find "." /C


 
Inconvénient : le fichier doit avoir un point dans son nom (extension) et ca ne compte que les fichiers, pas les repertoires (mais ca tu peux le changer dans le /A-D )


 
Je viens d'essayer mais comment je lui dis de regarder dans mon fichier "c:\Reporting\Fichier.txt" ?
 
Merci à toi.


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 14:17:39    

Une simple boucle suffi:

Code :
  1. for /r "d:\Chemin du répertoire\" %%i in (*.*) do set /a compt+=1
  2. echo %compt%


Message édité par Coolnut le 29-11-2007 à 14:19:38
Reply

Marsh Posté le 29-11-2007 à 14:17:41    

ben en fait si j'ai bien compris tu te sers de ton fichier pour "scanner" tes dossiers.
Je penses que tu peux passer par un truc comme ca :

Code :
  1. dir "TON_DOSSIER_DE_DEPART" /A-D /B /S | find "." /C


 
et ca te sort au final le nbre de fichier au total dans tes reps et sous-reps.
Par contre ca risque d'être long c clair :/


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 29-11-2007 à 14:33:05    

SICKofitALL a écrit :

ben en fait si j'ai bien compris tu te sers de ton fichier pour "scanner" tes dossiers.
Je penses que tu peux passer par un truc comme ca :

Code :
  1. dir "TON_DOSSIER_DE_DEPART" /A-D /B /S | find "." /C


 
et ca te sort au final le nbre de fichier au total dans tes reps et sous-reps.
Par contre ca risque d'être long c clair :/


 
Merci.
c'est en train de tourner.
J'attends le résultat.
 :hello:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 14:35:34    

J'ai un résultat qui est très différent de la réalité......
 
J'obtiens via le script 229144 alors qu'il y en a 232778.
 
Aurais tu une piste ??


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 14:38:08    

ben comme prévenu, il faut que le fichier possede un point dans son nom, donc si le fichier a pas d'extensions :spamafote:
 
t'as regardé du coté du bout de script de Coolnut ?


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 29-11-2007 à 14:42:30    

SICKofitALL a écrit :

ben comme prévenu, il faut que le fichier possede un point dans son nom, donc si le fichier a pas d'extensions :spamafote:
 
t'as regardé du coté du bout de script de Coolnut ?


 
Je ne comprends pas vraiment la notion du point dans le nom du fichier.
Mon fichier s'appelle "Fichier.txt", tu parles du point entre le nom et l'extension ?
 
Je ne connais pas le script de Coolnut...... tu as un lien.
 
Merci


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 14:49:25    

Il est la le script de coolnut:

Code :
  1. for /r "d:\Chemin du répertoire\" %%i in (*.*) do set /a compt+=1
  2. echo %compt%

Reply

Marsh Posté le 29-11-2007 à 14:49:25   

Reply

Marsh Posté le 29-11-2007 à 14:49:56    

Et bien j'ai fini par trouver en modifiant ce que tu m'as donné.
 

Code :
  1. dir "TON_DOSSIER_DE_DEPART" /A-D /B /S | find "d:\" /C


 
Et ca me donne le bon résultat.
 
Merci du temps que tu as passé à résoudre mon problème.
 
 :hello:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Marsh Posté le 29-11-2007 à 14:50:53    

Je n'avais pas vu que Coolnut avait posté.
 
Désolé Coolnut et merci pour ton script, je vais l'essayer.
 
 :jap:


---------------
- Feed-back - - Jeu du moment: J’ai un backlog monstre sur Switch - C'est moi Bananecafe
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed