Batch : Pb commande echo

Résolu/Fermé
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 - 8 juil. 2009 à 13:56
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 - 8 juil. 2009 à 17:05
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

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 juil. 2009 à 14:22
hello
$ echo echo 127.0.0.1 ^%web^% ^>^> ^%hostpath^% ^>^> fichier.txt > x
$ type x
echo 127.0.0.1 %web% >> %hostpath% >> fichier.txt
3
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 juil. 2009 à 14:44
Bien vu !
Il fallait connaître le caractère de protection.
J'ai testé %%web%%, ça ne fonctionne pas...
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 juil. 2009 à 15:03
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 juil. 2009 à 14:03
autant en bash c'est simple, autant là sous DOS, je n'y arrive pas.
0
Utilisateur anonyme
8 juil. 2009 à 14:05
Attend, tu veut qu'il y est marqué quoi dans ton fichier texte ?

Les variables sous forme : %nom_variable%

ou les valeurs des variables ?
0

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

Posez votre question
Utilisateur anonyme
8 juil. 2009 à 14:10
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....
0
Utilisateur anonyme
8 juil. 2009 à 14:16
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
0
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
8 juil. 2009 à 14:59
Je vais essayé ca de suite.
Mais pourrais tu expliquer à quoi sert $ ^ et type x
0
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
8 juil. 2009 à 15:03
'$' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.

=(
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 juil. 2009 à 15:06
$ 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
0
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
8 juil. 2009 à 15:14
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%
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 juil. 2009 à 15:27
essaye ces 2 commandes
echo echo 127.0.0.1 ^%web^% ^>^> ^%hostpath^% ^>^> fichier.txt > x.bat
type x.bat
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 juil. 2009 à 15:31
et tu tapes quoi exactement ?
0
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
8 juil. 2009 à 15:42
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
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
8 juil. 2009 à 16:16
relis le post #5, où sont les ^ ?
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 juil. 2009 à 16:31
Je dirai même plus, relis les postes #5 et #9 !
0
shetan Messages postés 611 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 19 août 2009 62
8 juil. 2009 à 17:05
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.
0