Script .bat pour lister des fichiers

Fermé
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011 - Modifié par arkard le 8/12/2011 à 17:02
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011 - 9 déc. 2011 à 09:23
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.


A voir également:

6 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
8 déc. 2011 à 17:09
hello
tester %ERRORLEVEL% puisque si dir retourne Fichier introuvable
%ERRORLEVEL% vaut 1, sinon 0
0
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011
8 déc. 2011 à 17:22
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
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
9 déc. 2011 à 08:43
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
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011
Modifié par arkard le 9/12/2011 à 09:17
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 9/12/2011 à 09:19
j'ai changé le find : find "" /V /C
0
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011
Modifié par arkard le 9/12/2011 à 09:22
Oui j'ai vu en fait ça a l'air bon, je teste et vous redit ça. Merci en tout cas.
0
arkard Messages postés 18 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 14 décembre 2011
Modifié par arkard le 9/12/2011 à 09:27
C'est bon ça fonctionne, merci beaucoup. Le 2^>NUL ^ permet de supprimer l'entrée "Fichier introuvable" ?
0