OVH Cloud OVH Cloud

comment connaître le nombre et type de fichiers?

25 réponses
Avatar
Bégé
Bonjour à tous,

pour des statistiques je dois connaître le nombre et types de fichiers
contenus
dans dossier,

par exemple si je sélectionne un dossier, je voudrais savoir combien il
contient de
fichiers *.jpg - *.html - *.gif etc.

comment faire?

merci de votre aide


www.blooo.fr

10 réponses

1 2 3
Avatar
Bégé
> C'est parce que l'expansion retardée des variables n'est pas activée chez
toi.!
Désolé d'avoir oublié de te le préciser, car chez moi c'est systématique
sur toutes les machines.

En effet, ce paramètre "d'expansion retardée de variables" ("Delayed
Expansion") permet d'expliciter le contenu d'une variable EN COURS
d'exécution d'un script (et non au début).
Dans ce cas, la variable doit être encadrée par des "!" au lieu de "%"
Si on ne le fait pas, la variable est initialisée la 1ère fois, mais
n'évolue plus au cours de la boucle.
(donc on aurait toujours N=0)

On active l'expansion retardée des variables en exécutant CMD (une fois
suffit) avec le commutateur "/V:ON"


j'ai essayé ça et je ne voit pas de différence :-((
je fais quoi exactement? j'ouvres une fenêtre CMD et je tape "/V:ON" c'est
ça?

On peut aussi la rendre permanente en ajoutant une entrée dans la clef :
HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor
Entrée "DelayedExpansion"
Type REG_DWORD
Valeur 0x00000001


alors créé ça dans regedit mais j'ai toujours le même résultat :-((
Avatar
jackr13
Bonjour Bégé,

Bégé wrote:
Si tu veux les fichiers .jpg
tu tapes enumext^.jpg ^pour indiquer un espace.
et pour .bmp enumext^.bmp



oui c'est bien ce que je fais et alors j'ai
"opérateur manquant"



En fait j'avais repris ce batch et essayé sur ma machine cela
fonctionnait correctement .. sans erreur. Je cherchais donc l'erreur
par rapport à vos observations. C'est l'explication qui a suivi de JCB
qui m'a fait comprendre que sur ma machine était activé l'expansion
retardée des variables .. et je l'avais oublié.

Cordialement,
jackr13
Avatar
Michel__D
Bonjour,

Bégé a écrit :
C'est parce que l'expansion retardée des variables n'est pas activée chez
toi.!
Désolé d'avoir oublié de te le préciser, car chez moi c'est systématique
sur toutes les machines.

En effet, ce paramètre "d'expansion retardée de variables" ("Delayed
Expansion") permet d'expliciter le contenu d'une variable EN COURS
d'exécution d'un script (et non au début).
Dans ce cas, la variable doit être encadrée par des "!" au lieu de "%"
Si on ne le fait pas, la variable est initialisée la 1ère fois, mais
n'évolue plus au cours de la boucle.
(donc on aurait toujours N=0)

On active l'expansion retardée des variables en exécutant CMD (une fois
suffit) avec le commutateur "/V:ON"


j'ai essayé ça et je ne voit pas de différence :-((
je fais quoi exactement? j'ouvres une fenêtre CMD et je tape "/V:ON" c'est
ça?

On peut aussi la rendre permanente en ajoutant une entrée dans la clef :
HKEY_LOCAL_MACHINESOFTWAREMicrosoftCommand Processor
Entrée "DelayedExpansion"
Type REG_DWORD
Valeur 0x00000001


alors créé ça dans regedit mais j'ai toujours le même résultat :-((



Voici une autre alternative qu'il faut éditer sous la console à cause du
é de "Répertoire ..."

@Echo Off
For %%V in (jpg htm gif) Do Call :Traite %%V
Goto Fin
:Traite
Echo Nombre de fichier(s) avec l'extension ".%1"
Dir *.%1 | Findstr "Répertoire Total fichier(s)"
:Fin


PS:Et pour avoir tous les sous-répertoires remplacer la ligne
Dir ...
par
Dir /s*.%1 | Findstr "Répertoire Total fichier(s)"
Avatar
Michel__D
Petite correction

Voici une autre alternative qu'il faut éditer sous la console à cause du
é de "Répertoire ..."

@Echo Off
For %%V in (jpg htm gif) Do Call :Traite %%V
Goto Fin
:Traite
Echo Nombre de fichier(s) avec l'extension ".%1"
Dir *.%1 | Findstr "Répertoire Total fichier(s)"
:Fin


PS:Et pour avoir tous les sous-répertoires remplacer la ligne
Dir ...
par
Dir /s *.%1 | Findstr "Répertoire Total fichier(s)"
Avatar
Bégé
> Voici une autre alternative qu'il faut éditer sous la console à cause du
é de "Répertoire ..."



je viens d'essayer ça
@Echo Off
For %%V in (jpg htm gif) Do Call :Traite %%V
Goto Fin
:Traite
Echo Nombre de fichier(s) avec l'extension ".%1"
Dir /s *.%1 | Findstr "Répertoire Total fichier(s)"
:Fin

le problème c'est qu'il y plusieurs pages qui défilent et je n'arrive pas
tout voir,
alors j'ai essaye de rajouter /p mais ça ne marche pas,
et ce qu'i est plus gênant aussi c'est qu'il met tout en vrac, par exemple :
20 fichiers
16 fichiers
2 fichiers
etc.
il n'y aurait pas un moyen d'avoir le total par type de fichier?

merci de votre patience
Avatar
Bégé
finalement je pense qu eje vais me faire un fichier batch
par type de fichier recherché,
un pour les fichiers html, un autre pour les gif etc.
je leurs donenrais les noms en focntion des fichiers recherchés et comme ça
je saurais ou j'en suis,
je viens de faire l'essai avec un seul type de fichier et au bas de la page
il me met bien le total de fichiers
trouvés,

je ne voit pas mieux :-)
Avatar
jackr13
Bonjour Bégé,

Bégé wrote:
finalement je pense qu eje vais me faire un fichier batch
par type de fichier recherché,
un pour les fichiers html, un autre pour les gif etc.
je leurs donenrais les noms en focntion des fichiers recherchés et
comme ça je saurais ou j'en suis,
je viens de faire l'essai avec un seul type de fichier et au bas de
la page il me met bien le total de fichiers
trouvés,

je ne voit pas mieux :-)



Je ne comprends pas que ce petit outil de JCB ne puisse fonctionner sur
votre machine.
avez-vous vraiment lancé la commande: cmd /V:ON
puis enumext .jpg
Sur ma machine ou cela marche je suis allé un peu plus loin et j'ai
imbriqué deux fichiers de cmd et j'obtiens un fichier de visualisation
d'un dir.
soit un fichier try.cmd
@echo off
call c:enumext .exe > total_ext.txt
call c:enumext .bat >> total_ext.txt
call c:enumext .pdf >> total_ext.txt
call c:enumext .hmt >> total_ext.txt
call c:enumext .txt >> total_ext.txt
call c:enumext .xls >> total_ext.txt
call c:enumext .ppt >> total_ext.txt
call c:enumext .doc >> total_ext.txt
call c:enumext .htm >> total_ext.txt
call c:enumext .jpg >> total_ext.txt
call c:enumext .com >> total_ext.txt
exit

et le résultat de total_ext.txt est pour c:tmp

Il y a 123 fichier(s) d'extension .exe dans C:tmp
Il y a 8 fichier(s) d'extension .bat dans C:tmp
Il y a 161 fichier(s) d'extension .pdf dans C:tmp
Il y a 0 fichier(s) d'extension .hmt dans C:tmp
Il y a 25 fichier(s) d'extension .txt dans C:tmp
Il y a 12 fichier(s) d'extension .xls dans C:tmp
Il y a 5 fichier(s) d'extension .ppt dans C:tmp
Il y a 20 fichier(s) d'extension .doc dans C:tmp
Il y a 15 fichier(s) d'extension .htm dans C:tmp
Il y a 6 fichier(s) d'extension .jpg dans C:tmp
Il y a 0 fichier(s) d'extension .com dans C:tmp

ce n'est qu'un exemple ....

on peut l'améliorer

Cordialement,
jackr13
Avatar
Michel__D
"Bégé" a écrit dans le message de news:

> Voici une autre alternative qu'il faut éditer sous la console à cause du
> é de "Répertoire ..."

je viens d'essayer ça
@Echo Off
For %%V in (jpg htm gif) Do Call :Traite %%V
Goto Fin
:Traite
Echo Nombre de fichier(s) avec l'extension ".%1"
Dir /s *.%1 | Findstr "Répertoire Total fichier(s)"
:Fin

le problème c'est qu'il y plusieurs pages qui défilent et je n'arrive pas
tout voir,



Edite sous la console (et pas avec notepad à cause des accents) et
change les lignes suivantes

Echo Nombre de fichier(s) avec l'extension ".%1" >> Sortie.txt
Dir /s *.%1 | Findstr "Répertoire Total fichier(s)" >> Sortie.txt

Tu obtient le résultat du traitement dans le fichier sortie.txt que tu peux
ouvrir avec WordPad pour la conversion de "fichier texte MSDOS" vers
"fichier texte seulement"

alors j'ai essaye de rajouter /p mais ça ne marche pas,
et ce qu'i est plus gênant aussi c'est qu'il met tout en vrac, par exemple :
20 fichiers
16 fichiers
2 fichiers
etc.
il n'y aurait pas un moyen d'avoir le total par type de fichier?



Pour le total par type de fichier avec sous-répertoires voir la méthode
proposée par JCB ou alors un script vbs qui traite le fichier "Sortie.txt"
Avatar
Bégé
> Edite sous la console (et pas avec notepad à cause des accents) et
change les lignes suivantes


ouh là, me souvenais plus qu'on pouvait faire "edit" dans la console ,
ça me rapelle le DOS et "copy con" etc. :-)))

Echo Nombre de fichier(s) avec l'extension ".%1" >> Sortie.txt
Dir /s *.%1 | Findstr "Répertoire Total fichier(s)" >> Sortie.txt


oui j'ai mis ça et ça marche super bien :-)))


merci !
Avatar
Bégé
> avez-vous vraiment lancé la commande: cmd /V:ON


quand je tape ça j'ai en réponse :
Le lecteur spécifié est introuvable
1 2 3