Tom's Guide > Forum > Programmation > msdos - supprimer un morceau dans un fichier

msdos - supprimer un morceau dans un fichier

Forum Programmation : msdos - supprimer un morceau dans un fichier

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 ;)

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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.

Répondre à CRicky

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...

Répondre à thegege2002

Bon j'ai testé ça:

Code :
  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é:

Code :
  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


Répondre à CRicky
Tom's Guide > Forum > Programmation > msdos - supprimer un morceau dans un fichier
Aller à :

Il y a 1601 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens