[batch] contenu d'un fichier dans une variabl

Résolu/Fermé
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 - 29 nov. 2008 à 17:43
 Tardif - 8 juin 2015 à 21:08
Bonjour,
comment mettre le contenu d'un ficher dans une variable en batch
A voir également:

13 réponses

Utilisateur anonyme
29 nov. 2008 à 19:09
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
Utilisateur anonyme
29 nov. 2008 à 18:15
Slt, voila le code :

 set VARIABLE= < ton_fichier.txt 


@+
5
SAW4 Messages postés 190 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 14 décembre 2008 16
29 nov. 2008 à 19:15
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
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
29 nov. 2008 à 19:07
rem @echo off

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

echo --
echo %var%
echo --
set var=
pause>nul
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
29 nov. 2008 à 18:21
j'ai deja essaye ca marche pas
2
SAW4 Messages postés 190 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 14 décembre 2008 16
29 nov. 2008 à 18:37
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
SAW4 Messages postés 190 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 14 décembre 2008 16
29 nov. 2008 à 19:03
tu peux me montrer ton code ?
2
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
29 nov. 2008 à 19:12
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
Utilisateur anonyme
29 nov. 2008 à 19:13
Ok, merci

@+
2
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
29 nov. 2008 à 19:18
non non, je voulais simplement stocker le contenu dans une variable merci.
2
greg6614 Messages postés 592 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 3 juin 2017 107
Modifié par greg6614 le 26/05/2013 à 22:01
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
Lefouerrant Messages postés 567 Date d'inscription mercredi 19 décembre 2007 Statut Membre Dernière intervention 1 octobre 2009 116
29 nov. 2008 à 18:43
tu peux me montrer un exemple ?
si ca peut t'aider mon fichier ne contient qu'une seule ligne
1
Tu oublies le commutateur /p ^^

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


ET voilà XD
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