[BATCH] Comptage de fichiers répertoire actif... Fake !

Fermé
Utilisateur anonyme - Modifié par BEHEMOGER le 4/08/2014 à 16:57
 Utilisateur anonyme - 4 août 2014 à 17:40
Bonjour à toutes et à tous,

Après avoir fait un petit test avec un programme en batch, qui permet de compter le nombre de fichiers dans un repertoire actif, j'ai un petit souci, peut-être que cela vient d'une commande mal faite ou d'un oubli...

J'ai écrit ce script en batch :

@ECHO OFF
cls
color 0F


echo -----------------------------------------------------------
echo Nombre de fichiers dans le repertoire courant
echo -----------------------------------------------------------

echo.

echo Vous vous trouvez dans le repertoire %CD% !

echo.

:Comptage de fichiers

set /a nbFiles=0

for %%a in (*.*) do set /a nbFiles+=1

echo Il y a %nbFiles% fichier(s) dans ce repertoire !

echo voici les fichiers presents :
echo.
dir /O-d /A-d

pause>nul"


voici le resultat du script en effectuant la commande :


Vous avez vu je pense le petit souci : grâce à la boucle for, j'ai pu compter 18 fichiers, or après la commande dir, celle ci m'affiche 21 fichiers, alors peut être que c'est à cause des répertoires, mais j'ai utilisé /a-d qui n'affiche pas les répertoires. J'ai compté ça fait 21 :D ! mais pourquoi donc m'affiche t on 19 avec la boucle ?

Merci d'avance pour vos lanternes !

BEHEMOGER

3 réponses

laurent74000 Messages postés 562 Date d'inscription mercredi 18 janvier 2012 Statut Membre Dernière intervention 26 mai 2015 81
4 août 2014 à 16:47
Salut,

Fichiers cachés ?
0
Ah oui tiens j'y avais pas pensé lol :D merci !

Heureusement qu'il y a encore des gens lucides aha ;) !

Donc au final la commande dir permet de compter TOUS les fichiers y compris ceux dotés d'un attribut caché, bizarre...

Et avec une boucle for, cela ne compte pas les fichiers cachés.

Suffisait de faire attrib -h -s pour retirer l'attribut caché...

Y a t il un moyen d'entrer une commande particulière pour que la boucle ne comptabilise pas les fichiers cachés, du genre : dans la boucle for après (*.*) mettre find /v mais quel est la nomenclature pour les fichiers cachés ?
0
Utilisateur anonyme
4 août 2014 à 17:40
c'est bon j'ai trouvé, suffisait de rajouter /a-h pour ne pas afficher les fichiers cachés... Cependant, maintenant il me comptabilise que les fichiers, non les répertoires et les fichiers cachés, mais il me les affiche...

Je m'explique, j'ai dir /O-d qui tri par date en décroissant, puis /a-d, pour n'afficher que les fichiers, puis /a-h pour ne pas comptabiliser les cachés, or après cette instruction il me comptabilise pas les répertoires mais les affiche quand même. J'ai 19 fichiers et 10 répertoire pourtant la commande /a-d qui empêche l'affichage des Rep !!!
0