BATCH format erreur

Bonjour,
J'essayais de formater une carte SD en utilisant un code qu j'ai fait en batch.
Ce qui m'étonne, c'est qu'en ligne de commande directe, ça marche, mais pas dans un fichier .bat.
Le code est le suivant (oui je sais le code n'est pas propre mais ce n'est pas grave, il est à usage personnel) :


:recommencer
SET /p lecteurcartesd=QUEL EST LE LECTEUR DE LA CARTE SD ? (ecris sous la forme "C:" sans les guillemets)
SET /p reponse=c'est donc %lecteurcartesd% ? (ecris "O" ou "N" sans les guillemets)
if %reponse% == O (
echo OK
goto cbon)
(
echo Alors recommence
goto recommencer )
:cbon
SET /p reponse2=Toutes les donnees contenues dans %lecteurcartesd%\ vont etre perdus. D'accord ? (ecris "O" ou "N" sans les guillemets)
if %reponse% == O (
echo OK
goto cvraimentbon)
(
echo Alors recommencons depuis le debut
goto recommencer )
:cvraimentbon
echo Formatage...
format %lecteurdecartesd% /FS:FAT32 /Q
echo -----------------------
echo [ SUCCES DU FORMATAGE ]
echo -----------------------
pause > nul


Cependant, j'obtiens l'erreur suivante :
Paramètre requis manquant -
Merci d'avance.

2 réponses

  1. Contributeur
    bonjour, l'erreur me semble évidente. as-tu fait echo de la commande que tu exécutes?
    1. Je ne comprends pas. Je ne suis pas super fort en batch... Mais tu veux bien dire
      echo format %lecteurdecartesd% /FS:FAT32 /Q

      Quel est l'utilité de faire ça ? la commande echo ne fait pas qu'afficher un message ?
    2. Contributeur
      @LeProgrammeurdu93l'utilité: te faire progresser vers la détection de l'erreur.
      tu écris que tu es étonné qu'en ligne de commande directe, ça marche, mais pas dans un fichier .bat.
      ton étonnement est bien légitime, et pourrait te conduire à te demander si c'est bien la même commande exécutée dans les deux cas.
    3. Je ne comprends pas... Pourtant en ligne de commande, je suis la même démarche :
      Set lecteurcartesd=d:
      format %lecteurcartesd% /FS:FAT32 /Q /X

      Où me suis-je donc trompé ?
    4. Contributeur
      @LeProgrammeurdu93tu progresses.
      pourquoi le D: ou X: devrait-il être présent?
      n'hésite pas à ajouter des echo à d'autres endroits dans ton code: c'est ton outil principal pour comprendre ce que fait le code que tu as écrit.
    5. Eh bien, le D: ou le X: est la variable en soit, definie par set. A tout endroit de mon code, si j'écris %lecteurcartesd%, cela devrait, au "compilement", me le transformer automatiquement en la variable, soit D:...
      Toujours aussi perdu
      PS: désolé de te déranger, je sais que je suis débutant !!
  2. Bonjour,

    Ta variable %lecteurcartesd% s'est transformée (dans la commande FORMAT) en %lecteurdecartesd%

    1. Ah oui !!! Quel idiot je fais !!! Merci beaucoup !!
    2. Contributeur
      @LeProgrammeurdu93peux-tu alors marquer ceci comme résolu, via la roue dentée à droite du titre?