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 et comparer le nombre de fichiers d'un répertoire [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut Compter et comparer le nombre de fichiers d'un répertoire
    Bonjour,

    J'aimerai faire un script qui me permettra à son lancement de compter les fichiers d'un répertoire, comparer si ce nombre et égale au nombre de fichiers figurant sur une ligne du dernier log. Si le nombre est différent ça lance la sauvegarde.

    Le script suivant permet de calculer le nombre de fichiers dans le répertoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    cls
    set repertoire="C:\Users\Public\"
    dir %repertoire% /A-D /B /S | find %repertoire% /C
    set compte=dir %repertoire% /A-D /B /S | find %repertoire% /C
    rem n'affiche pas le nb de fichiers dans echo renvoi zéro ??
    echo le repertoire %repertoire% comptient %compte% fichiers 
    pause
    Mais malgré mes recherches, je n'ai pas trouvé de réponse concernant la comparaison.

    Un peu d'aide svp, merci d'avance.

  2. #2
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Bonjour,
    Un petit indice rapide:
    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off & cls
    for /f "tokens=*" %%A in ('dir /b /s "%repertoire%\*.*"') do echo Trouve: %%A
    pause
    exit

  3. #3
    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,

    Tu ne peux pas setter une variable par une commande set val=commande, mais grâce à FOR /f tu peux récupèrer la sortie d'une commande
    et setter la variable avec cette valeur.

    VOici le code qui fait ce que tu veux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    @echo off
    set "$repertoire=C:\Users\Public\"
    
    ::On récupère la valeur dans test.log
    <test.log set /p "$ValLog="
    
    ::On récupère le nombre de fichier dans le répertoire
    for /f %%a in ('dir /a-d-s-h /b "%$repertoire%" ^| find /v /c ""') do set $NbFichier=%%a
    
    ::On test les 2 valeurs
    
    if "%$NBFichier%" NEQ "%$ValLog: =%" goto:Save
    echo Tout est OK, Pas besoin de sauvegarde !
    exit/b
    pause
    
    
    :Save
    echo Nb Fichier = -%$NBFichier%-
    echo Val Log = -%$ValLog%-
    echo Valeurs differentes on sauvegarde !
    pause

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    841
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 841
    Par défaut
    Bonjour et merci pour vos réponses.

    devilsnake88, j'ai testé ton code, il liste les fichiers, alors qu'il faut les compter.

    sachadee, si j'ai bien compris il faut saisir la donnée, c'est pas mal, mais finalement le plus simple serait de comparer le nombre de fichiers dans la source avec le nombre de fichiers dans la destination en précisant que les fichiers *.tmp, *.bak et *.db sont exclus lors de la sauvegarde.

  5. #5
    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
    la première fois il faut mettre la valeur manuellement mais ensuite tu peux très bien faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >test.log echo %$NBfichier%
    et ça sera 100% automatique


  6. #6
    Membre émérite Avatar de devilsnake88
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2013
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2013
    Messages : 453
    Par défaut
    Mon commentaire n'avait pour but que de te montrer qu'il fallait passer par une boucle FOR pour effectuer ton DIR mais super Sachadee a été on ne peut plus concis ^^

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 26/11/2008, 16h41
  2. 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
  3. Réponses: 1
    Dernier message: 30/10/2007, 00h07
  4. Réponses: 7
    Dernier message: 10/10/2007, 19h23
  5. 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

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