Script .bat pour lister des fichiers

arkard Messages postés 19 Statut Membre -  
arkard Messages postés 19 Statut Membre -
Bonjour,

J'essaie de faire un script sur un serveur windows qui me remonte le nombre de fichiers dans un dossier :
J'ai la commande principale : dir "chemin" /A-D /B /S /Q | find "." /C

Et le système de remontée d'erreur que j'essaie de mettre en place est à peu près comme cela :
:err
echo CRITICAL: File Number too big
exit /B 1
:unknown
echo UNKNOWN: Something went wrong
exit /B 3
:ok
echo OK: File Number OK
exit /B 0

Mon problème est que je veux un retour CRITICAL s'il y a plus de 5 fichiers dans ce répertoire et que la plupart du temps il n'y a pas de fichiers dans ce répertoire (ce qui est normal car s'il y'en a beaucoup c'est qu'une appli fonctionne mal).

La commande me remonte également souvent un "Fichier introuvable" mais je veux uniquement la sortie 0.

Quelqu'un peut-il m'aiguiller ?

Merci d'avance.

6 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    tester %ERRORLEVEL% puisque si dir retourne Fichier introuvable
    %ERRORLEVEL% vaut 1, sinon 0
    0
  2. arkard Messages postés 19 Statut Membre
     
    En fait il me répond fichier introuvable et 0 en dessous (donc la bonne réponse) et sinon il me répond 1, 2, etc... Ce que je veux c'est avoir OK si 0-5 et CRITICAL si > 5. Dans ce cas comment intégrer l'ERRORLEVEL ?
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    essayer
    @ echo off
    set chemin=chemin
    for /f %%a in ('dir "%chemin%" /A-D /B /S /Q 2^>NUL ^| find "" /V /C') do (
    	if %%a GTR 5 (
    		echo CRITICAL
    	) else (
    		echo OK
    	)
    )
    0
  4. arkard Messages postés 19 Statut Membre
     
    Bonjour,

    Merci de votre réponse. Mais j'ai l'impression que ma commande dir ne marche pas en fait, j'ai en effet copié 3 fichiers texte dans le dossier et il me répond toujours 1 ou 0. Je vais essayer de trouver une autre commande pour compter le nombre de fichiers dans un répertoire.

    La commande ne doit pas être bonne, la boucle if du script devrait marcher par contre.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    j'ai changé le find : find "" /V /C
    0
    1. arkard Messages postés 19 Statut Membre
       
      Oui j'ai vu en fait ça a l'air bon, je teste et vous redit ça. Merci en tout cas.
      0
  7. arkard Messages postés 19 Statut Membre
     
    C'est bon ça fonctionne, merci beaucoup. Le 2^>NUL ^ permet de supprimer l'entrée "Fichier introuvable" ?
    0