Page 1 sur 1
Faire apparaître une variable en reprenant une autre variable
Posté : 01 déc. 2019 21:36
par ChickenY
Bonjour,
Je n'arrive pas à faire afficher une variable lorsque je fais apparaitre une autre variable.
Alors comment ça marche :
J'ai créé un fichier .bat dans lequel il y a une variable qui s’appelle VAR=1
J'ai créé un fichier .txt et le bat va récupérer ce qui est marqué dedans test %var%
quand j'ouvre le .bat il me fais apparaitre test %var% et non test 1
.BAT
@echo off
set VAR=1
(
set file1=
)<FILE.TXT
echo %file1%
pause
donc le .bat affiche 1 quand je met %VAR% maintenant dans le fichier txt
.TXT
test %VAR%
Le .bat va donc récupérer la ligne 1 qui est test %VAR%
MAIS il me fais apparaitre test %VAR%
Et je ne sais pas comment faire pour que dans le bat il me fasse apparaitre test 1
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 12:48
par alexandros
Salut, perso avec l'exemple que tu donnes la variable n'est pas créée.
Ça fonctionne avec le code suivant en changeant le contenu du fichier par "test !VAR!"
Code : Tout sélectionner
@echo off
setlocal enabledelayedexpansion
set VAR=1
for /f "tokens=*" %%a in (file.txt) do (
set file1=%%a
)
echo %file1%
endlocal
pause
exit
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 13:07
par ChickenY
Justement la variables et créé
set VAR=1
ensuite jai cree un document.txt ou ya marquer TEST
donc quand je vais sur le bat que je fais %VAR% jai bien 1 ensuite je vais chercher ce qui ya dans le doc document.txt en faisant
(
set line1=
)<document.txt donc il me recupere bien TEST en faisant %line1% maintenant si dans le document.txt je met TEST %VAR% il va me mettre TEST %VAR% et non TEST 1 en gros il prend le %VAR% pour un texte et non une variable a afficher.
Et je sais pas comment faire.
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 13:25
par alexandros
En faisant
j'ai le message "Commande ECHO désactivée." Donc variable inexistante.
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 13:40
par ChickenY
Non non c'est pas ça.
Je sais pas comment expliquer.
Dans mon .bat j'ai
@echo off
set VAR=1
(
set line1=
)<doc.txt
echo %VAR%
echo %line1%
pause
Donc la le .bat m'affiche 1 quand je fais %VAR% et la ligne du doc.txt quand je fais %line1% jusqua la tout et normal maintenant dans la ligne il ya marqué HELLO WORLD %VAR% donc il me prend le %VAR% pour un texte et non quelque chose qui doit remplacer je pense apres quon ne peut pas mettre 2 variable a afficher sur une.
dans mon doc.txt ya une ligne qui est : HELLO WORLD %VAR% et je recupere cette ligne de doc grace a
(
set line1=
)<doc.txt
mais ducoup il me prend le %VAR% pour un text donc je pense quil est impossible dafficher une variable en la mettant dans une autre ou dans un document a part.
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 13:42
par alexandros
Oui, j'ai compris. Mais ici impossible de récupérer la ligne comme tu le fais.
[Résolu] Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 14:04
par ChickenY
Ah bon c'est pas grave mais du coup sa gâche un coté à part si on utilise aucun doc et tout sur le .bat
Merci quand même.
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 05 déc. 2019 14:09
par alexandros
Tu as essayé comme je t'ai dit ? Ça marche nickel.
Re: Faire apparaître une variable en reprenant une autre variable
Posté : 28 janv. 2020 00:46
par Novice_Batcher
Salut,
En mettant 'ECHO Test%VAR%' dans un fichier '.bat', et à l'aide de la commande "START", on peux faire apparaître la valeur de %VAR% comme tu le souhaites.
Exemple:
Le contenu du programme principal à exécuter:
@ECHO OFF
SET /a VAR=1
START file.bat
Le contenu du fichier 'file.bat' que la commande "START" doit ouvrir:
@ECHO OFF
ECHO Test%VAR%
PAUSE
EXIT
Ça ne marchera pas avec la commande "ECHO" car cette commande considère le contenu d'un fichier '.txt' ou '.bat' comme du texte brut à afficher simplement.