[batch] contenu d'un fichier dans une variabl

Résolu
Bonjour,
comment mettre le contenu d'un ficher dans une variable en batch

--

Âne aux nîmes

13 réponses

  1. Bon, 2 choses :

    1) J'ai oublié une option, dsl...
    Le code est :

     set /p VAR= < ton_fichier.txt 


    2) Si ton fichier texte fait plusieurs lignes, seule la première (enfin, tant qu'il n n'y a pas de saut de ligne, cela n'exclut pas le retour à la ligne a cause du manque d'espace pour tou écrire a la suite) sera enregistrée : Le DOS ne prend pas en compte les retours a la ligne...

    Prenons pour exemple le code :

    @echo off
    @cls
    set /p VARIABLE= < fichier.txt
    echo %VARIABLE%
    pause>nul
    


    Il a deux sortes de résultats a se code, cela dépend du contenu du fichier texte :

    Si le fichier texte contient ceci :

    ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ

    Sans sauter de ligne (tout a la suite), sa marche.

    Si le fichier contient ceci :

    ABCDEFGHIJKLMNOPQRSTUVWXYZ
    ABCDEFGHIJKLMNOPQRSTUVWXYZ

    Sa ne marche pas, il faut utiliser FOR /F

    @+
    21
    1. Slt, voila le code :

       set VARIABLE= < ton_fichier.txt 


      @+
      5
      1. Si le but de ton batch lire simplement le fichier bat.txt alors il y a la commande TYPE BAT.TXT si par contre tu veux faire des traitement sur ton fichier alors :

        
        For /f "tokens=*" %%a In (bat.txt) do (
        echo --
        echo %%a
        echo -- 
        )
        set var=
        pause>nul
        4
        1. rem @echo off

          rem voila ma variable :
          set var= < bat.txt

          echo --
          echo %var%
          echo --
          set var=
          pause>nul
          3
          1. j'ai deja essaye ca marche pas
            2
            1. Salut,

              il faut mettre la variable dans une boucle...la variable traite le fichier ligne par ligne donc une boucle FOR /F est la plus approprié pour ce genre de chose ;-)
              2
              1. merci beaucoup ! ton code set /p var= < fichier.txt fonctionne
                c'est ce que je cherchai !
                si tu as besoin d'aide n'esite pas !
                2
                1. non non, je voulais simplement stocker le contenu dans une variable merci.
                  2
                  1. salut, si ton fichier TXT ne contient qu'un seul ligne, un simple :

                    set VAR=<Fichier.txt 


                    Sinon s'il contient plusieurs ligne, il faut certainement essayer avec une boucle FOR /F. :)

                    EDIT: Trop tard ^^

                    En espérant t'avoir aider
                    Greg
                    2
                    1. tu peux me montrer un exemple ?
                      si ca peut t'aider mon fichier ne contient qu'une seule ligne
                      1
                      1. Tu oublies le commutateur /p ^^

                        ce n'est pas set var=fichier.txt
                        mais set /p var=fichier.txt

                        ET voilà XD
                        1
                        1. Désolé poru le retard mais le /p cherche à demander à un utilisateur de demander de mettre une variable.

                          ça va afficher : fichier.txt_
                          -1