Bonjour,
Je dois supprimer la premiere et la derniere ligne d’un fichier texte en BATCH.
comment faire?
J’ai essayé avec sed.exe mais l’option -i sensée faire ça sous linux n’est apparement pas reconnue par le portage windows…
La commande exacte que j’ai essayé est: sed -i 1d essai.txt
sed -i, c’est pour modifier le fichier lui-même.
sans cette option, sed envoie son résultat sur la sortie standard que tu peux rediriger sed 1d essai.txt > essai1.txt devrait fonctionner.
pour la première ligne (1d) c’est facile, par contre, si tu connais la solution pour la dernière, tu m’intéresses …
Oui, mais ce qui m’interesse c’est de modifier le fichier lui méme. et dsl je ne sait pas supprimer la derniére ligne avec sed.
Aprés des recherches suplementaires j’ai trouve un autre programme windows qui corespond a mon besoin, méme si il ne supprime pas vraiement la premiere ligne: switch.exe
ce programme recherche une chaine de caratere et la remplace par une autre. La premiere ligne de mes fichiers etant tt le temps la méme, ça me conviens. par contre il laisse une ligne vide quand je lui demande de remplacer “truc bidule” par rien. comment lui demander de suprimmer le saut de ligne avec?
Zarathoustra >
merci pour le $d. C’est vrai que je n’avais pas trop cherché
Il faut bien sûr aussi les guillemets comme tu les as mis ; par contre, pendant qu’on y est, il ne faut pas l’option -text pour que les lignes soient correctement reconnues en windows ?
j’ai testé
sed “1d” fichier.txt | sed “$d” | sed “w fichier.txt”
avec un bête fichier texte avec un chiffre sur chaque ligne et ça marche! donc je pense pas qu’il soit nécessaire d’utiliser une option supplémentaire
une autre petite question, toujours sous windows: comment sauvegarder tout ce qu’il s’affiche dans la console (les sorties de toutes le commandes) dans un fichier texte?
c’est quand tu tapes ta commande qu’il faut rediriger la sortie vers un fichier texte avec le symbol >
exemple: echo blabla > blabla.txt
si tu as tapé tes commandes sans rediriger la sortie vers un fichier texte tu cliques droit sur l’éditeur de commande et tu fais “séléctionner” tu séléctionnes avec ta souris puis Ctrl+c pour copier Ctrl+v pour coller
bin, le but c’est de rediriger l’ensemble la sortie de script.bat dans log.txt
je dois rajouter >log.txt a chaque commande de script.bat? (vu que yen a plein, c’est chiant…)
oui sauf que tu utilise > la première fois et ensuite >> quand tu veux écrire à la suite
Exemple: @echo off
echo blabla > blabla.txt
echo lalala > blabla.txt
ça va te donner dans ton fichier blabla.txt
si non il faut écrire
echo blabla > blabla.txt
echo lalala >> blabla.txt
ce qui va donner dans ton fichier blabla.txt
[quote="kalamar"]
erf, encore un petit probléme: je veux faire une boucle for qui fait:
FOR %%A IN (ulbo bulo bolu) DO
cd c:%%A
del *.txt
tt plein de commandes
encore des commandes
fin du for
seulement je trouve pas comment lui faire faire plusieurs commandes a mon for …
[/quote]
ben une boucle for ça fait toutes les comandes à l’interieur de la boucle pour toutes les valeurs :neutre:
chauqe commande est exécutée l’une après l’autre
faut juste les regrouper ()
Edité le 03/10/2007 à 14:33
ah non je connais que quelques bases, donc là je sais pas te répondre.
cela dit tu dois pouvoir envoyer un mail sans utiliser de vbs avec la commande telnet sur le port 25
par contre faudra créer un fichier de réponse séparé du batch pour envoyer les paramètres de connexion. Mais ça dépasse mes compétences :ane:
cela dit y a pas de raison que t’arrives pas à faire appel à un vbs depuis ton batch
Edité le 03/10/2007 à 16:13