IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Compter nombre de fichiers [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 15
    Par défaut Compter nombre de fichiers
    Bonjour à tous,

    Je viens sur ce forum afin que vous puissiez m'aider à faire quelque chose que je ne sais pas faire.
    J'ai fais un script avec la commande externe forfiles pour supprimer des photos prises par une caméra IP datant de plus de 15 jours :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @echo off
    set jour=15
    set chemin=PhotosCam
    forfiles -p %chemin% -d -%jour% -c "cmd /c del @FILE"
    pause
    Je souhaiterai compter le nombre de photos que mon script supprime et mettre le résultat dans un fichier texte, exemple : Il y a "tant de photos" qui ont été supprimées.

    J'ai déjà essayé avec un compteur mais il me compte toute les photos du répertoire PhotosCam et non les photos sélectionnées et supprimées par la commande forfiles.

    Auriez-vous une idée ?

    Cordialement.

  2. #2
    Membre confirmé Avatar de Bragu Demon
    Homme Profil pro
    Intégrateur d'Explopitation
    Inscrit en
    Juin 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Intégrateur d'Explopitation
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2013
    Messages : 125
    Par défaut
    Bonjour,

    Tu peux rediriger le résultat de forfiles dans un fichier, puis à l'aide d'une boucle for /f supprimer les fichiers dans ton fichier.


    ex :
    Lister les fichiers et rediriger le résultat dans un autre fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    forfiles @file > C:\liste.txt
    Compter le nombre de ligne dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /V /C "" C:\liste.txt
    Couplé à une boucle for, tu pourras récupérer dans ton script le nombre le ligne.

    Autre compteur :
    A mettre avant ta boucle
    Amettre dans ta boucle
    Supprimer les fichiers dont le nom est dans un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F "tokens=*" %%a in (C:\liste.txt) Do (del %%a)
    A tester et à adapter a ton besoin, il y a tout un tas de commutateur sympa.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 15
    Par défaut
    Merci de ta réponse tu me met sur une bonne piste.

    Mais lorsque j'exécute ce script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
    set jour=15
    set chemin=c:\PhotosCam
    forfiles -p%chemin% -d-%jour% -c"cmd /c echo @file" > c:\nbPhotos.txt
    find /V /C "" c:\nbPhotos.txt
    set compt=-1
    FOR /F "tokens=*" %%a in (c:\nbPhotos.txt) DO (del %%a)
    set /a compt+=1
    echo il y a %compt% photos supprimées > c:\nbPhotos.txt
    pause
    il m'affiche la liste avec les noms de photos devant être supprimés mais me dit Impossible de trouver c:\Documents and settings\nomducompte\Bureau\nom de la photos.jpg

    ce qui est normal vu que les photos sont dans c:\PhotosCam, mais je ne vois pas pourquoi il va chercher ici.

    Cordialement.

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    juste quelques remarque sur ton script :

    Pourquoi utiliser la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /V /C "" c:\nbPhotos.txt
    si ensuite tu incrémentes une variable pour compter les fichiers.

    Si c'est juste pour un question d'affichage de l'information avant traitement (DEL). Il serait plus propre de récuperer le nombre de fichier dans une variable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for /f %%a in ('Find /V /C "" ^< nbPhotos.txt') do set $NbFichier=%%a
    echo Nombre de fichiers qui vont etre d‚truit : %$NBFichier%
    Ensuite si tu veux vraiment Incrémenter ou décrementer un compteur de nouveau pour une question d'affichage de l'information. Incrémente ton compteur dans la boucle (comme te l'a justement dit Bragu Demon) et active l'expansion retardée (sinon ton compteur sera toujours égal à 1):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    set compt=1
    setlocal EnableDelayedExpansion
    FOR /F "tokens=*" %%a in ('type "c:\nbPhotos.txt"') DO (del %%a
                                                            cls
                                                            echo !compt! de %$NbFichier% Trait‚s
                                                            set /a compt+=1)
    Echo traitement termin‚

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 15
    Par défaut
    Problème résolu, je vous remercie beaucoup.

    Bonne journée à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter nombre de fichier dans un répertoire
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2008, 11h57
  2. Réponses: 4
    Dernier message: 15/08/2006, 13h30
  3. [VBA-E]Compter nombre de fichier dans un dossier
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 22/05/2006, 14h36
  4. compter le nombre de fichiers dans un répertoire !
    Par lehic dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 20/11/2005, 17h59
  5. Réponses: 6
    Dernier message: 11/02/2005, 06h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo