Batch : Pb commande echo [Résolu/Fermé]

Signaler
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
-
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
-
Bonjour,

je voudrait écrire la ligne suivante dans un fichier texte :

echo echo 127.0.0.1 %web% >> %hostpath% >> fichier.txt

Le problème c'est que sur fichier.txt j'obtient

echo 127.0.0.1 lavariable%web%

Et c'est tout, or j'ai besoin qu'il inscrive :

echo 127.0.0.1 %web% >> %hostpath%

Des idées ?

16 réponses

Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
hello
$ echo echo 127.0.0.1 ^%web^% ^>^> ^%hostpath^% ^>^> fichier.txt > x
$ type x
echo 127.0.0.1 %web% >> %hostpath% >> fichier.txt
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
Bien vu !
Il fallait connaître le caractère de protection.
J'ai testé %%web%%, ça ne fonctionne pas...
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
on trouve (difficilement) l'explication de l'existence d'un caractère d'échappement (^) dans l'aide Windows
Références de A à Z de la ligne de commande
Vue d'ensemble de l'interpréteur de commandes
Remarques
Le signe &, la barre verticale (|) et les parenthèses ( ) sont des caractères spéciaux qui doivent être précédés du caractère d'échappement (^) ou de guillemets lorsque vous les transmettez en tant qu'arguments.
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60511 internautes nous ont dit merci ce mois-ci

Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
autant en bash c'est simple, autant là sous DOS, je n'y arrive pas.

Attend, tu veut qu'il y est marqué quoi dans ton fichier texte ?

Les variables sous forme : %nom_variable%

ou les valeurs des variables ?

J'ai rien dit !!
Je croit avoir compris.

Pour empêcher d'afficher la valeur de "web", on peut marqué : %%web%%

Le début du code sera donc :

echo echo 127.0.0.1 %%web%%


Mais c'est les ">>" qui nous bloque...


Char Sniper a raison, en Bash, avec "echo -e", c'est beaucoup plus simple...
Je vais regarder ça tout de suite....

Il y a moyen de tapper :

echo "echo 127.0.0.1 %%web%% >> %%hostpath%%" >> fichier.txt


Mais après, dans le fichier txt, il y a des "" :

"echo 127.0.0.1 %web% >> %hostpath%" 


...

=S
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
62
Je vais essayé ca de suite.
Mais pourrais tu expliquer à quoi sert $ ^ et type x
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
62
'$' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

=(
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
$ est mon prompt, je n'aime pas C:>\
^ protège le caractère suivant comme étant spécial, comme les >< ou |
j'écris la commande dans un fichier appellé x et je l'affiche avec type
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
62
J'ai testé et dans mon fichier.txt il est ajouté

127.0.0.1 lavariable%web%

Et j'aimerais

echo 127.0.0.1 lavariable%web% >> %hostpath%
ou encore
echo 127.0.0.1 lavariable%web% >> lavariable%hostpath%
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
essaye ces 2 commandes
echo echo 127.0.0.1 ^%web^% ^>^> ^%hostpath^% ^>^> fichier.txt > x.bat
type x.bat
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
et tu tapes quoi exactement ?
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
62
attrib -r -h %hostpath%
echo 127.0.0.1	%web% >> %hostpath%
echo echo 127.0.0.1 %web% >> %hostpath% >> fichier.bat


En faite c'est une commande pour ajouter une ligne de commande dans mon fichier.bat :
echo 127.0.0.1 %web% >> %hostpath%

Inscrit directement
echo 127.0.0.1 www.web.com
dans mon fichier %hostpath%

Et je veux que, en plus :

echo echo 127.0.0.1 %web% >> %hostpath% >> fichier.bat

Inscrit la comande
echo 127.0.0.1 %web% >> %hostpath% 
dans mon fichier.bat
Messages postés
18232
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
30 octobre 2020
5 047
relis le post #5, où sont les ^ ?
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 199
Je dirai même plus, relis les postes #5 et #9 !
Messages postés
611
Date d'inscription
lundi 4 mai 2009
Statut
Membre
Dernière intervention
19 août 2009
62
J'ai outrepasser cette histoire, j'ai créer un fichier.txt avec toute les entrées que je peux implémenter facilement.
De plus avec une boucle FOR je peut utiliser chaque ligne de ce fichier et lui ajouter le fameux >> %hostpath%

Merci de votre aide en tout cas.