[Batch]Fixer une variable à partir d'un texte
Fermé
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
-
25 nov. 2008 à 22:07
coco - 14 mai 2010 à 15:57
coco - 14 mai 2010 à 15:57
A voir également:
- [Batch]Fixer une variable à partir d'un texte
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Fichier batch - Guide
- Excel cellule couleur si condition texte - Guide
- Transcription audio en texte word gratuit - Guide
18 réponses
hem ! je ne pense pas qu'il soit judicieux de mettre des fichiers entiers dans des variables d'environnement.
mais il existe quand même une solution pour fixer des var à la demande :
1.
dans information1.cmd tu mets : set information1=le texte que je veux dans ma var information 1
dans information2.cmd tu mets : set information2=un autre texte qu'il me plait de manipuler à travers un variable d'environnement
dans information3.cmd tu mets : set information3=c'est mon programme !
etc...
2. depuis ton batch principal tu fais call information1.cmd ou call information2.cmd etc...
ça répond à ta problématique ?
mais il existe quand même une solution pour fixer des var à la demande :
1.
dans information1.cmd tu mets : set information1=le texte que je veux dans ma var information 1
dans information2.cmd tu mets : set information2=un autre texte qu'il me plait de manipuler à travers un variable d'environnement
dans information3.cmd tu mets : set information3=c'est mon programme !
etc...
2. depuis ton batch principal tu fais call information1.cmd ou call information2.cmd etc...
ça répond à ta problématique ?
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
25 nov. 2008 à 22:33
25 nov. 2008 à 22:33
Ouais, merci pour ta réponse, je vais essayer de faire avec. Si quelqu'un a une solution plus simple (1 seul fichier par exemple) qu'il n'hésite pas :D
Moi en fait le problème se pose pour la configuration. Il faudrait qu'a partir de mon batch principal je puisse configurer une variable qui, tant que je ne la change pas, restera toujours la meme valeur a chaque fois que j'allumerais mon prog
Moi en fait le problème se pose pour la configuration. Il faudrait qu'a partir de mon batch principal je puisse configurer une variable qui, tant que je ne la change pas, restera toujours la meme valeur a chaque fois que j'allumerais mon prog
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
17 déc. 2008 à 11:13
17 déc. 2008 à 11:13
petit up svp merci
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
17 déc. 2008 à 13:04
17 déc. 2008 à 13:04
salut,
on peut voir une partie de ton fichier et de ton batch
on peut voir une partie de ton fichier et de ton batch
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
17 déc. 2008 à 14:45
17 déc. 2008 à 14:45
en fait je ne cherche pas a faire ca pour un batch en particulier, mais vous etes sur qu'il n'est pas possible de faire un fichier .conf, .nfo ou n'importequoi ou il y aurait
[info1] : %var%
ou alors un fichier dont tout le contenu soit une variable, donc je peux faire un truc genre :
@echo off
if NOT EXIST var1.txt ( goto createvar1 )
"Comande pour fixer la Var1 a partir du fichier texte" <== C'est ca dont j'ai besoin !!!
echo La var 1 est %var1%
pause
exit
:createvar1
set /p vartext=Que voulez vous définir comme Var1 ?
echo>Var1.txt %vartext%
pause
exit
C'est assez clair comme ca ?
j'en profite pour dire que ce sujet se rapproche assez de celui la :
http://www.commentcamarche.net/forum/affich 2256829 batch extraction chaine de caracteres
sauf que je n'ai toujours pas compris comment ils faisait dans celui-ci
[info1] : %var%
ou alors un fichier dont tout le contenu soit une variable, donc je peux faire un truc genre :
@echo off
if NOT EXIST var1.txt ( goto createvar1 )
"Comande pour fixer la Var1 a partir du fichier texte" <== C'est ca dont j'ai besoin !!!
echo La var 1 est %var1%
pause
exit
:createvar1
set /p vartext=Que voulez vous définir comme Var1 ?
echo>Var1.txt %vartext%
pause
exit
C'est assez clair comme ca ?
j'en profite pour dire que ce sujet se rapproche assez de celui la :
http://www.commentcamarche.net/forum/affich 2256829 batch extraction chaine de caracteres
sauf que je n'ai toujours pas compris comment ils faisait dans celui-ci
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
17 déc. 2008 à 15:29
17 déc. 2008 à 15:29
la variable ne peut contenir qu'une seule ligne du fichier et non pas tout le fichier entier..
vous avez un fichier de la forme :
quand l'utilisateur tape par exemple :
info1 la chaîne balablablablab1 sera redéfinite
j'ai un fichier comme ci-dessus :
le fichier devient :
c'est ça ce que vous voulez
vous avez un fichier de la forme :
[info1] : blablablablab1 [info2] : blablablablabla2 [info3] : balablablablabl3
quand l'utilisateur tape par exemple :
info1 la chaîne balablablablab1 sera redéfinite
j'ai un fichier comme ci-dessus :
je tape en invite>command info2 ça sort>définir blablablablabla2 oui ou non <OUI> ça sort>alors: <une autre configuration><ENTER>
le fichier devient :
[info1] : blablablablab1 [info2] : une autre configuration [info3] : balablablablabl3
c'est ça ce que vous voulez
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
17 déc. 2008 à 15:34
17 déc. 2008 à 15:34
Non c'est pas exactement ca en fait si
[info1] :
est vide, alors des les démarrage cela propose de le redéfinir.
ainsi après configuration de l'utilisateur le fichier devient :
[info1] : blablablablabnlablablablabla
et ensuite au prochain démmarage du programme celui ci détecte que la ligne apres
[info1]
est pleine, donc il en fait une variable d'environnement qu'on peut utiliser dans la suite du programme
[info1] :
est vide, alors des les démarrage cela propose de le redéfinir.
ainsi après configuration de l'utilisateur le fichier devient :
[info1] : blablablablabnlablablablabla
et ensuite au prochain démmarage du programme celui ci détecte que la ligne apres
[info1]
est pleine, donc il en fait une variable d'environnement qu'on peut utiliser dans la suite du programme
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
20 déc. 2008 à 16:01
20 déc. 2008 à 16:01
J'ai trouvé ca :
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do ...
mais je n'arrive pas a le configurer...
en fait je n'ai pas compris comment ca marchait j'ai l'impression que ca extrait quelque chose du fichier temp2.txt, ca devient la variable %%i mais je n'ai pas compris comment configurer tokens et delims....
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do ...
mais je n'arrive pas a le configurer...
en fait je n'ai pas compris comment ca marchait j'ai l'impression que ca extrait quelque chose du fichier temp2.txt, ca devient la variable %%i mais je n'ai pas compris comment configurer tokens et delims....
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
20 déc. 2008 à 17:06
20 déc. 2008 à 17:06
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do Echo %%i %%j
le fichier temp2.txt ressemble à ceci :
var1 : var2 var1 : var2
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
20 déc. 2008 à 18:07
20 déc. 2008 à 18:07
euh ... possible mais moi ce que j'aimerais c'est le configurer pour avoir
[var1]: blablablablabla1
[var2]:blablablablabblablabalba2
et que %%i devienne blablablablabla
comment faire ? merci
[var1]: blablablablabla1
[var2]:blablablablabblablabalba2
et que %%i devienne blablablablabla
comment faire ? merci
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
20 déc. 2008 à 18:13
20 déc. 2008 à 18:13
si t'as un fichier :
alors utilise ceci pour afficher balabalablab : dans un batch et non pas dans le prompt ..
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do Echo %%j
[var1]: blablablablabla1 [var2]:blablablablabblablabalba2
alors utilise ceci pour afficher balabalablab : dans un batch et non pas dans le prompt ..
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do Echo %%j
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
20 déc. 2008 à 18:46
20 déc. 2008 à 18:46
merci, pourrais tu quand meme m'expliquer en détail la commande que je puisse l'adapter a mon prog ? merci :D
et puis, plus dur, ...
Comment faire pour pouvoir modifier
[var1]:blablabla
en [var1]:blibliblibli
tout ca toujours depuis le batch principal genre avec marqué
Veuillez fixer la Var2 : //on marque quelquechose
//le programme écrit [var2]:ce qu'on a écrit dans le txt
Echo variable écrite avec succes
pause
et puis, plus dur, ...
Comment faire pour pouvoir modifier
[var1]:blablabla
en [var1]:blibliblibli
tout ca toujours depuis le batch principal genre avec marqué
Veuillez fixer la Var2 : //on marque quelquechose
//le programme écrit [var2]:ce qu'on a écrit dans le txt
Echo variable écrite avec succes
pause
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
20 déc. 2008 à 20:19
20 déc. 2008 à 20:19
FOR /F "tokens=1,2 delims=:" %%i in (temp2.txt) do Echo %%i %%j
ça se traduit :
liste toutes les lignes une à une du fichier temp2.txt (puisque c'est une boucle)
"tokens=1,2 delims=:" est un critère, c-à-d séparer les chaines de caractères en 2 (tokens=1,2) le séparateur étant le 2point (delims=:) ainsi on aurra 2 parties disjointes le %%i et le %%j
voila..
pour ton autre question sincerement j'ai pas compris..
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
21 déc. 2008 à 02:02
21 déc. 2008 à 02:02
ben en fait ce serait modifier la variable [var1]blablablabla depuis le batch principal dans le fichier texte
SAW5
Messages postés
111
Date d'inscription
vendredi 14 novembre 2008
Statut
Membre
Dernière intervention
6 janvier 2010
7
21 déc. 2008 à 08:04
21 déc. 2008 à 08:04
et pourquoi ne pas utiliser l'utilitaire switch.exe pour faire ceci dans un batch : plus propre et plus concis
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
21 déc. 2008 à 09:24
21 déc. 2008 à 09:24
2 problèmes :
déjà si mon fichier a une suite, je fais
var1:blablabla
var2:bliblibli
et je met
FOR /F "tokens=1,2 delims=1:" %%i in (test.inf) do @echo %%j
je met le "1:" pour que le programme sache que c'est la première valeur dont j'ai besoin
mais il m'affiche
blablabla
var2:bliblibli
ce qui se comprend, le programme est séparé en 2 parties, la suite est incluse dans la variable.
pour y remédier, j'ai voulu séparer mon programme en 4 parties.
Mais voila le problème, comment déclarer un séparateur différent.... ?
j'ai essayé de modifier mon fichier comme ça :
var1:variable ;1
var2:variable2 ;2
pour que les séparateurs soient clairs, et mon batch ainsi :
FOR /F "tokens=1,2,3,4 delims=1:, ;1, 2:" %%i in (test.inf) do @echo %%j
mais ça me met ";1, 2: était inattendu"
merci de vos réponses ...
déjà si mon fichier a une suite, je fais
var1:blablabla
var2:bliblibli
et je met
FOR /F "tokens=1,2 delims=1:" %%i in (test.inf) do @echo %%j
je met le "1:" pour que le programme sache que c'est la première valeur dont j'ai besoin
mais il m'affiche
blablabla
var2:bliblibli
ce qui se comprend, le programme est séparé en 2 parties, la suite est incluse dans la variable.
pour y remédier, j'ai voulu séparer mon programme en 4 parties.
Mais voila le problème, comment déclarer un séparateur différent.... ?
j'ai essayé de modifier mon fichier comme ça :
var1:variable ;1
var2:variable2 ;2
pour que les séparateurs soient clairs, et mon batch ainsi :
FOR /F "tokens=1,2,3,4 delims=1:, ;1, 2:" %%i in (test.inf) do @echo %%j
mais ça me met ";1, 2: était inattendu"
merci de vos réponses ...
serialtueur
Messages postés
49
Date d'inscription
mardi 25 novembre 2008
Statut
Membre
Dernière intervention
22 octobre 2009
80
12 févr. 2009 à 14:22
12 févr. 2009 à 14:22
up s'il vous plait
Lol, ça marche pas comme ça, normalement ton délimiteur est un (1) seul caractère. Heureusement ils ont pensé à séparer aussi par exemple si ton délimiteur est: '_' et que ton entrée a par exemple : "var1____var2__var3_var4" il va les couper correctement. Sinon il va falloir que tu coupes plusieurs fois par chaque caractère de séparation en indentant, ce qui n'est absolument pas désirable.
Bonne chance.
Moi aussi je suis pris avec un "2 était inattendu"... à suivre...
Bonne chance.
Moi aussi je suis pris avec un "2 était inattendu"... à suivre...