Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1794 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Supprimer le début des lignes d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH] Supprimer le début des lignes d'un fichier

n°1566741
armyman
Posté le 29-05-2007 à 16:08:08  profilanswer
 

Bonjour,  
 
J'ai écrit cette ligne:

Code :
  1. FOR /R "%CD%" %%G IN (*.wav,*.mp3) DO ECHO %%G >> liste.txt


qui me permet de lister tous les fichiers wav et mp3 du dossier à partir duquel je lance ce petit programme.
 
Donc par exemple si je lance ce programme à partir du dossier bla sur mon bureau, j'obtient la liste au format:

Code :
  1. c:\bla\son1.wav
  2. c:\bla\son2.mp3
  3. c:\bla\dossier1\son3.wav
  4. c:\bla\dossier2\son4.mp3


 
Ma question :  
 
Dans cette liste je voudrais effacer automatiquement le 'c:\bla\' qui est au début de chaques lignes, afin de retrouver une liste comme ca:

Code :
  1. son1.wav
  2. son2.mp3
  3. dossier1\son3.wav
  4. dossier2\son4.mp3


 
Tout ce que j'ai essayé n'a pas marché :/
 
L'idéal serait de supprimer avant d'écrire dans le fichier, question de rapidité..
 
Comment puis-je faire ?


Message édité par armyman le 29-05-2007 à 17:24:31
mood
Publicité
Posté le 29-05-2007 à 16:08:08  profilanswer
 

n°1567374
webding
Posté le 30-05-2007 à 16:36:03  profilanswer
 

Voila déja une boucle qui supprime le C:

Code :
  1. for /f "tokens=2 delims=:" %%i in ('type liste.txt') do echo %%i>> liste2.txt

 

n°1567375
webding
Posté le 30-05-2007 à 16:37:05  profilanswer
 

Ah, essaye plutot ceci:

Code :
  1. FOR /R "%CD%" %%G IN (*.wav,*.mp3) DO ECHO %%~nxG >> liste.txt


 
Dans %%~nxG le n indique le nom du fichier, et le x indique l'extension


Message édité par webding le 30-05-2007 à 16:40:02
n°1567908
armyman
Posté le 31-05-2007 à 14:05:46  profilanswer
 

Ta 2eme réponse était interessante mais j'ai absolument besoin des noms de dossiers (ca écrit seulement les noms de fichiers et l'extension)
 
De toute facon j'ai trouvé comment faire, et vraiment je vois pas de meilleure methode.

Code :
  1. FOR /F "TOKENS=5* DELIMS=\" %%I IN ('DIR /S /B *.wav, *.mp3') DO @ECHO %%J >> liste.txt

Le DIR fais le même travail que la boucle FOR de mon premier post, mais c'est plus rapide, et le TOKENS=5* c'est parce que mon répertoire de travail était C:\Documents and Settings\Guillaume\Bureau\sound\vehicles. C'est fou ce qu'une ligne de batch peut faire :D
 
Voilà ca devrais en aider certains peut etre.
 
Merci quand meme webding, a+.

n°1570363
4get9
C'est clair !
Posté le 05-06-2007 à 15:20:02  profilanswer
 

sinon un simple cut :

cut -c8-80



Message édité par 4get9 le 05-06-2007 à 15:20:22
n°1570625
armyman
Posté le 05-06-2007 à 22:58:17  profilanswer
 

Hmm, ya pas de commande 'cut', en tout cas pas sous WinXP pro. Merci quand même :).


Message édité par armyman le 05-06-2007 à 22:59:31
n°1570628
4get9
C'est clair !
Posté le 05-06-2007 à 23:00:43  profilanswer
 

oups ! :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH] Supprimer le début des lignes d'un fichier

 

Sujets relatifs
Taille maximale d'un fichier xmlMacro excel pour traitement fichier word
Récupérer un fichier et le retransmettre par la suite.Manipulation des octets d'un fichier binaire
Comment envoyer le résultat vers un fichier et garder à l'écran ?Requête sur un fichier déjà en cache avec Opera via XMLHttpRequest
Aide pour la creation d'un fichier .batpdf vers fichier image
[PHP] Extraire un fichier zip[C#][ASP.NET1.1]Exporter datagrid vers un fichier excel ou word
Plus de sujets relatifs à : [BATCH] Supprimer le début des lignes d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR