Se connecter / S'enregistrer
Votre question

msdos - supprimer un morceau dans un fichier

Tags :
  • Echo
  • Programmation
Dernière réponse : dans Programmation
31 Janvier 2006 11:49:16

Voilà mon problème, j'ai un fichier texte avec plusieurs lignes :

c'est écrit dans ce fichier texte:
c:\copiessai\didou\ohoh.txt
c:\copiessai\allo.html
c:\copiessai\didou\ro\lolo.txt

je voudrais trouver une commande qui permettrait d'effacer c:\copiessai dans ce fichier

Je voudrais avoir ce résultat la dans mon fichier texte:
didou\ohoh.txt
allo.html
didou\ro\lolo.txt


ou alors :

j'écris une commande ailleurs j'appelle ce fichier et j'enlève c:\copiessai et change de chemin d'accès.

Si vous ne comprenez pas ce que je vous parle, posez moi la question ;) 

Autres pages sur : msdos supprimer morceau fichier

a b L Programmation
31 Janvier 2006 13:30:22

si tu est sûr que ça commence par ça partout, tu fais un FOR /F sur le fichier, tu met %%i dans une variable VAR, et tu fais
echo %VAR:~13% >> fichier2.txt
pour ne prendre la ligne qu'à partir du 13ème caractère.
31 Janvier 2006 15:39:27

Je n'arrive pas à le mettre en oeuvre.
J'ai testé plusieurs choses ou alors comme tu as fait et ça ne veut pas marcher il affiche seulement ce que tu as écrit.
Voilà ce que j'ai mis :

set var=%%i
for /f %%i in (listefichiers2.txt) do echo %var:~13%

rien qu'avec ça il affiche
c:\copiessai\didou\am.txt:~13%

:-o J'en suis sûre que je suis pas loin du résultat...
a b L Programmation
31 Janvier 2006 20:52:06

Bon j'ai testé ça:
  1. for /f %%i in (listefichiers2.txt) do (
  2. set VAR=%%i
  3. echo %var:~13% >> toto.txt
  4. )

et visiblement ça ne marche pas non plus :-D
Apparemment, il y a un problème avec la manipulation de variables dans un for.
Donc je prendrais une autre technique: le découpage par le caractère '\'. En plus je pense que c'est plus approprié:
  1. for /f "tokens=1,2* delims=\ " %%i in (listefichiers2.txt) do (
  2. echo %%k >> toto.txt
  3. )

on indique pour chaque ligne qu'on fait un découpage sur les caractères '\' (delims), et qu'on prend le premier morceau dans %%i (1 dans tokens), le deuxième morceau dans %%j (2 dans tokens), et tout le reste n'est pas découpé et mis en brut dans %%k (le * de tokens)
dans ton exemple:
%%i = c:
%%j = copiessai
%%k = didou\am.txt


Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS