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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Renommage de fichier avec le contenu de la 1ère ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Renommage de fichier avec le contenu de la 1ère ligne

n°2176704
mf07
"Les cons ça osent tout..."
Posté le 20-02-2013 à 23:06:30  profilanswer
 

Bonsoir,
 
Un peu nullos dans le monde des fichiers .bat ,je demande votre aide...
 
J'ai une multitude de fichier lisible sous txt sous la forme "3748gh54957.m05.n01"
 
Mon souhait serait céer un fichier batch pour renommer chaque fichier avec le contenu de la première ligne de ce fichier tout en changeant l'extension en .txt
 
J'ai parcouru google en long et en large ,mais malheureusement je ne dois pas rechercher avec les bons mots clés.
 
 
Merci d'avance pour votre aide.
 
Cordialement,

mood
Publicité
Posté le 20-02-2013 à 23:06:30  profilanswer
 

n°2176734
eZula
Posté le 21-02-2013 à 08:15:52  profilanswer
 

Salut

Citation :


J'ai une multitude de fichier lisible sous txt sous la forme "3748gh54957.m05.n01"


 
tous ces fichiers ont une extension ".n01" ?

n°2176994
mf07
"Les cons ça osent tout..."
Posté le 22-02-2013 à 08:25:22  profilanswer
 

Bonjour, hélas non ,ils prennent l'extension n01,n02,n03 etc...
 
Salutations

n°2177156
mf07
"Les cons ça osent tout..."
Posté le 22-02-2013 à 20:14:50  profilanswer
 

Bonsoir,
 
Visiblement ce ne doit pas être facile à faire ,voir impossible...
 
J'ai vraiment pa

n°2177188
pvclunacy
Posté le 23-02-2013 à 10:07:13  profilanswer
 

Essaye en faisant une copie préalable de tous tes fichiers, histoire de pas tout foirer :D

 

Tu met les fichiers dans le répertoire, disons, TEST
Tu crée un fichier MassRename.bat avec ce contenu :

 
Code :
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3. for /r %%i in (\%1\*) do (
  4. set first=1
  5. for /f "delims=" %%a in (%%i) do (
  6.  if !first!==1 rename %%i %%a.txt
  7.  set first=0
  8. )
  9. )
 

que tu enregistre dans le répertoire un niveau au dessus, tu devrais donc avoir ceci en structure de répertoire :

 

.
..
TEST
MassRename.bat

 

tu apelle MassRename TEST dans une invite ms-dos.
J'ai testé sur 2,3 fichiers, ça semble marcher. Par contre ça le fait pour tous les fichiers du répertoire, donc attation hin !


Message édité par pvclunacy le 23-02-2013 à 10:07:43
n°2177259
mf07
"Les cons ça osent tout..."
Posté le 24-02-2013 à 15:36:49  profilanswer
 

Salut pvclunacy,
 
Un grand merci ,ça marche au top !
Y at'il un site ou l'on peu avoir des descriptions sur le language ?
Je suppose que l'on peut faire plein de truc avec les boucles for (pour ne citer que celui ci).
J'ai une petite base en vba ,mais là le script je trouve ça brut et puissant... comme j'aime.
 
Encore merci.
 
MF

n°2177448
mf07
"Les cons ça osent tout..."
Posté le 25-02-2013 à 19:46:17  profilanswer
 

Bonjour,
 
Me revoilà sur ce topic car en réalité cela ne fonctionne pas comme je le souhaite !
Le résultat final est bon ,le nom du fichier est bien celui de la valeur de la première ligne.
Le hic resulte sur la boucle for qui passe en revue toutes les lignes du fichier...
Etant donné que ce batch doit fonctionner sur un PC peut puissant l'opération est assez longue même pour 5 fichiers.
Les fichiers textes font environs 25 à 40ko chacuns mais environs 2500 à 4000 lignes !!!
 
J'ai fait des test en modifiant des valeurs dans la formule mais sans succès...
 
Si on peut m'aider pour finaliser le truc...
 
Merci
 
Cordialement
 
MF  

n°2177461
pvclunacy
Posté le 25-02-2013 à 22:53:51  profilanswer
 

Essaye avec ça alors
 
(meme principe qu'avant, tu passe le répertoire de travail en paramètre)
 

Code :
  1. @echo off
  2. for /r %%a in (\%1\*) do call :process "%%a"
  3. goto :eof
  4. :process
  5. for /f "usebackq delims=" %%a in (%1) do rename %1 %%a.txt&goto :eof


 
Pour les sites, tu peux jeter un oeil à ceux ci qui me semblent pas mal : batcher.fr, ss64.com, dostips.com

n°2178260
mf07
"Les cons ça osent tout..."
Posté le 02-03-2013 à 08:42:01  profilanswer
 

Bonjour,
 
Merci pvclunacy ,ça marche au top. :bounce:  
 
 
Bonne journée !
 
MF07


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

  Renommage de fichier avec le contenu de la 1ère ligne

 

Sujets relatifs
Moulinette à partir d'un fichier CSVMacro pour supprimer une ligne
[java] Ligne qui bloque tout mon programmeCréer une arborescence de fichier
Appeler label depuis un autre fichier batchAjouter une ligne non complète
Afficher ligne de la valeur recherchéproblème lecture de fichier texte en ada
[RESOLU] [VBA] Créer un onglet pour chaque ligne répondant à 1 critèreEcrire dans un fichier Mac Os X avec xCode
Plus de sujets relatifs à : Renommage de fichier avec le contenu de la 1ère ligne


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