Batch (.bat) redirection vers fichier .txt

Miika -  
BeFaX Messages postés 16334 Statut Contributeur -
Bonjour a vous tous :) .

J'espère que vous pourrez m'aider, je cherche depuis se matin une solution a mon problème mais je n'en trouve aucune.

Donc en faite je suis entrain de créer un fichier .bat, je veux que se fichier .bat fasse une redirection vers un fichier .txt alors je fais :

@ECHO OFF

echo '---------- > texte.txt
echo ' Main >> texte.txt
echo '---------- >> texte.txt
echo Select Case InputBox ( _ >> texte.txt
echo "Entrez le numéro du menu souhaité et clique sur Ok. . ." & vbCrlf & _ >> texte.txt
echo " [1] Item 1" & vbCrlf & _ >> texte.txt
echo " [2] Item 2" & vbCrlf & _ >> texte.txt
echo " [3] Item 3" & vbCrlf & _ >> texte.txt
echo " [4] Item 4", _ >> texte.txt
echo "Main Menu") >> texte.txt
pause


Voilà donc mon code qui pose problème ;

Lorsque que j'enregistre mon fichier .bat et l'exécute, il me marque :

"Entrez le numéro du menu souhaité et clique sur Ok. . ."
'vbCrlf' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
'_' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
" [1] Item 1"
'vbCrlf' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
'_' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
" [2] Item 2"
'vbCrlf' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
'_' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
" [3] Item 3"
'vbCrlf' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
'_' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.


Donc en final il me pose problème surement a cause des guillemets, mes je ne sais pas comment régler sa pour que le .bat prenne tous sa pour du texte et non des commande(s) :(

Merci à vous d'avance pour votre aide =) !

2 réponses

  1. BeFaX Messages postés 16334 Statut Contributeur 3 863
     
    Tu dois mettre ^ devant le signe & car & veut dire que le prochain mot sera une commande, comme un retour à la ligne.

    echo salut
    echo bonjour
    echo aurevoir

    est la même chose que : echo salut & echo bonjour & echo aurevoir

    Donc un ^ devant les caractères spéciaux.
    2
  2. Miika
     
    J'ai pensé au "&" qui permet d'effectuer plusieurs commandes a la suite mais j'ai même pas pensé qu'il aurai pu être utilisé de la même façon en utilisant echo en batch xD.

    Et bah une réponse rapide, qui me permet d'une, d'apprendre quelque chose ^^ et deux, bah de reprendre mon travail.

    Un grand grand merciii =D !!
    0
    1. BeFaX Messages postés 16334 Statut Contributeur 3 863
       
      Il y a encore plus simple au lieu de refaire plusieurs redirection d'echo :

      (echo '----------   
      echo ' Main   
      echo '----------   
      echo Select Case InputBox ( _   
      echo "Entrez le numéro du menu souhaité et clique sur Ok. . ." ^& vbCrlf ^& _   
      echo " [1] Item 1" ^& vbCrlf ^& _   
      echo " [2] Item 2" ^& vbCrlf ^& _   
      echo " [3] Item 3" ^& vbCrlf ^& _   
      echo " [4] Item 4", _   
      echo "Main Menu"^)  
      )>texte.txt


      Tout ce qui sera entre les parenthèses aura sa redirection vers texte.txt au lieu d'avoir chaque fois >>texte.txt.

      J'adore le batch, n'hésites pas à me poser tes problèmes.
      0
    2. Miika
       
      Oui j'ai aussi essayer avec les parenthèse avant de faire de la manière plus longue ou je dois a chaque fin de ligne ajouter >>texte.txt, mais lorsque j'enregistre mon fichier bat et le lance il me marque erreur innatendu :s.
      0
    3. Miika
       
      Ah nan pour le petit bout de code que j'ai posté ici sa fonctionne avec les parenthèse, mais par compte pour un bout de code plus grand se ne passe pas ... :s, je vais regarder sa :).
      0
    4. BeFaX Messages postés 16334 Statut Contributeur 3 863
       
      Dis moi ton bout de code, c'est surement un problème de parenthèse sans le ^ devant.
      0
    5. Myika Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
       
      Voilà mon autre bout de code :

      echo  Case "1"
      echo  Call sub1()
      echo  Case "2"
      echo  Call sub2()
      echo  Case "3"
      echo  Call sub3()
      echo  Case "4"
      echo  Call sub4()
      echo  Case Else
      echo  WScript.Echo "Vous avez entré un mauvais choix !"
      echo  End Select
      


      Mais se bout de code ne me donne pas d'indication sur l'erreur, avec se code en plus du premier il ne veut tout simplement pas créer le texte.txt.

      Merci pour ton aide :)
      0