Choix multiple: Probléme de direction

Résolu
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

  1. Contributeur
    %%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
    1. 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
    2. Contributeur
      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
    3. @dubcekmerci ç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
    4. Contributeur
      par ex.
      if %c% EQU 0 echo il n'y a pas de fichier
      if %c% NEQ 0 goto relance
      0
    5. @dubcekC'est nickel !
      Merci beaucoup.
      Fred
      0