Supprimer une partie d'un texte

Supprimer une partie d'un texte - Shell/Batch - Programmation

Marsh Posté le 11-09-2009 à 19:16:06    

:hello:
J'ai voulu faire un petit fichier .bat qui sert à supprimer la pub dans MSN.
Maintenant, j'aimerais faire un deuxième fichier .bat qui fait exactement l'inverse, c'est une question de principe : si un internaute veut remettre la pub ( :??: ), il faudrait qu'il puisse supprimer les deux lignes créés par le premier fichier...
Voici le code :

Code :
  1. @echo off
  2. echo.
  3. echo Ceci est un fichier batch permettant la suppression de la publicité de Windows Live Messenger.
  4. echo.
  5. attrib C:\WINDOWS\system32\drivers\etc\hosts -r
  6. echo 127.0.0.1 rad.msn.com >> C:\WINDOWS\system32\drivers\etc\hosts
  7. echo 127.0.0.1 rad.live.com >> C:\WINDOWS\system32\drivers\etc\hosts
  8. attrib C:\WINDOWS\system32\drivers\etc\hosts +r
  9. echo La publicité a bien été supprimée ;)
  10. pause


Pour ajouter du texte, c'est simple. Maintenant pour l'enlever, j'ai vraiment du mal. J'essaye aussi de le laisser en .bat (ou .exe ?) pour que n'importe quelle personne sous windows puisse exécuter le programme sans devoir en installer un autre tel que Python etc. En plus, la programmation et moi ça fait deux, pour faire les 10 petites lignes ci-dessus ça m'a pris une heure et demie  :o
Si quelqu'un a une idée, je le remercie d'avance de bien vouloir m'aider  :)


Message édité par a-m13 le 11-09-2009 à 19:16:45
Reply

Marsh Posté le 11-09-2009 à 19:16:06   

Reply

Marsh Posté le 12-09-2009 à 09:23:27    

Salut,
 
* Ou bien tu utilises une redirection degueulasse du fichier d'origine vers un fichier de destination, dénué de l'expression "127.0.0.1 rad." (point commun entre les deux lignes que tu veux supprimer)
 

Code :
  1. TYPE hosts | FIND /V "127.0.0.1 rad." > fichier_destination


 
ensuite tu supprimes le hosts d'origine et tu renommes ton fichier de destination en "hosts"
 
* Ou bien tu édites proprement et directement le fichier source, toujours en élimant les lignes contenant le motif "127.0.0.1 rad.". Avec un outil externe (éditeur SED par exemple) cela pourrait donner :
 

Code :
  1. SED -i "/127\.0\.0\.1 rad\./d" hosts

Reply

Marsh Posté le 13-09-2009 à 20:59:39    

Mais... SED n'est pas sous Windows :??: Il faudrait que en un seul clic tout soit fait pour l'internaute, qu'il n'ait pas à installer des programmes tiers :/

Reply

Marsh Posté le 13-09-2009 à 21:09:57    

Donc, solution 1 : redirection

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed