Choix multiple: Probléme de direction

Résolu/Fermé
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 6 avril 2016 à 16:41
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 7 avril 2016 à 13:43
Bonjour,
Je suis en train de développer un script tout simple qui va regarder la présence de fichiers dans des répertoires.
Le problème c'est que je sors du script si il ne trouve pas de fichier alors qu'il devrait m'afficher que "le dossier ne contient pas de fichier" et enchainer sur une autre recherche.
Voici une partie du script pour mieux comprendre:
@echo off
@rem Script recherche fichier
@rem script à utiliser pour relancer des fichiers bloqués
@rem

@rem Dossier des flux PHSE vers PART
set rep=Z:\DOSSIER\RCV

:menu
set /p choix=Voulez-vous voir le contenu du dossier Z:\DOSSIER\RCV ? oui(o) ou non(n) ou sortie(s)
if %choix%==o goto RCV
if %choix%==n goto EXIT

::Si ce n'est pas o ou n alors ce n'est pas correct
goto erreurCommand

:erreurCommand
echo Votre choix "%choix%" n'est pas correct
goto menu

:RCV
for /f %%a in ('dir %rep% /A /B /O:GEN') do (
if "%%a"=="" (
goto OTHER
) else (
echo %%a
)
)

:OTHER
echo Le dossier ne contient pas de fichier
echo Voulez-vous voir le contenu du dossier "Z:\DOSSIER2\RCV" ? oui(o) ou non(n) o

etc...


Manifestement, le rebond vers OTHER ne fonctionne pas, mais je ne sais pas pourquoi...
Pourriez-vous svp m'apporter votre aide ?
Fred

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 avril 2016 à 10:22
%%a contient le nom des fichiers, mais à la fin, il sort de la boucle, il n'y a pas de "%%a"==""
for /f %%a in ('dir %rep% /A /B /O:GEN') do (
if "%%a"=="" (
goto OTHER
) else (
echo %%a
)
)
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
7 avril 2016 à 10:29
Bonjour Dubcek et merci pour ta réponse,
mais comment je peux faire pour lister les fichiers (si ils sont présents) et enchainer sur une autre recherche si il n'y en pas ?
Peut être que c'est toute ma boucle qui n'est pas correcte ?
Merci d'avance pour ton aide.
0
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 7/04/2016 à 11:09
compter les fichiers
set /a c=0
for /f "delims=" %%a in ('dir %rep% /A /B /O:GEN') do (
echo %%a
set /a c+=1
)
if %c% EQU 0 echo il n'y a pas de fichier
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
7 avril 2016 à 11:43
merci ça marche.
par contre si il y a effectivement des fichiers dans %rep%, le programme me les liste donc, mais ensuite comment faire pour lui indiquer de se rendre vers une autre étape du programme de type "relance" :
:relance
(pour pas que le menu se déroule de nouveau)
Merci
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
7 avril 2016 à 11:55
par ex.
if %c% EQU 0 echo il n'y a pas de fichier
if %c% NEQ 0 goto relance
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
7 avril 2016 à 13:43
C'est nickel !
Merci beaucoup.
Fred
0