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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Aide pour batch de renommage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide pour batch de renommage

n°1518563
akilion
Born to be wild
Posté le 22-02-2007 à 18:25:13  profilanswer
 

Salut à tous,
 
bon je précise d'emblée, je suis nul de chez nul en prog mais mon patron s'en tape
il m'a demandé de faire un batch pour renommer automatiquement tous les fichiers d'un répertoire du format
 
xxxxxxxx.yyy
 
en
 
xxxxxxxx_yyy.toto.txt
 
avec la commande rename je pensais m'en sortir mais en fait je n'y arrive pas
 
pour l'instant je me retrouve avec ça :
 
xxxxxxxx.toto.txt
 
 
ren *.* *_*
ren *.* *.toto.txt
 
qqn peut m'aider ? je suis sur qu'il faut jouer avec les variables mais je galère


Message édité par akilion le 12-04-2007 à 16:12:44

---------------
en plein changement de carrière, 30 ans l'année de tous les dangers !
mood
Publicité
Posté le 22-02-2007 à 18:25:13  profilanswer
 

n°1519006
akilion
Born to be wild
Posté le 23-02-2007 à 16:14:39  profilanswer
 

Personne pour m'aider ?
 
je sais qu'il faut utiliser une boucle for mais j'y pige que dalle (je suis pas programmeur je le rappelle et le shell c'est du chinois pour moi)

n°1519665
blastkille​r
Posté le 25-02-2007 à 16:56:44  profilanswer
 

ren *.yyy *.
ren *. *_yyy.toto.txt

n°1519932
akilion
Born to be wild
Posté le 26-02-2007 à 11:09:09  profilanswer
 

Merci mais en fait j'ai peut etre pas été assez clair dans la description de mon problème.
 
en fait yyy pour l'extension c'est un exemple, les fichiers que je dois renommer ont des extensions diverses :
 
A06
B34
ect ect ect
 
D'où la difficulté à le faire avec juste la commande rename (en fait le type d'extension est aléatoire).


---------------
en plein changement de carrière, 30 ans l'année de tous les dangers !
n°1520027
blastkille​r
Posté le 26-02-2007 à 12:25:04  profilanswer
 

Et bien donne encore plus d'info, dans le dossier où il y a les fichiers avec extension aléatoire, qu'est ce qu'il y a d'autre ?

n°1520171
akilion
Born to be wild
Posté le 26-02-2007 à 15:14:09  profilanswer
 

blastkiller a écrit :

Et bien donne encore plus d'info, dans le dossier où il y a les fichiers avec extension aléatoire, qu'est ce qu'il y a d'autre ?


 
 
rien d'autre, les fichiers sont déposés par une appli dans ce format et il faut que je les renomme dans un autre format
 
abjkmfjsd.a15 doit donner abjkmfjsd_a15.toto.txt par exemple
cjklmkunmnfmsfuyq fsdqdfq.b21 doit donner cjklmkunmnfmsfuyq fsdqdfq_b21.toto.txt
 
ect ect
 
au niveau du nom de fichier c'est variable, l'extension fait 3 caractères c'est la seule condition fixe.

n°1520287
blastkille​r
Posté le 26-02-2007 à 16:52:09  profilanswer
 

@echo off
for /f "tokens=2 delims=." %%a in ('dir /b') do call :commande %%a
exit
:commande
set ext=%1
if %ext%==bat goto suite
ren *.%ext% *.
ren *. *_%ext%.toto.txt
:suite

n°1520298
akilion
Born to be wild
Posté le 26-02-2007 à 17:06:17  profilanswer
 

blastkiller a écrit :

@echo off
for /f "tokens=2 delims=." %%a in ('dir /b') do call :commande %%a
exit
:commande
set ext=%1
if %ext%==bat goto suite
ren *.%ext% *.
ren *. *_%ext%.toto.txt
:suite


 
 
ca marche nikel !!!!
 
merci !!!
 
(je comprends rien au shell mais je savais bien que c'était possible)


---------------
en plein changement de carrière, 30 ans l'année de tous les dangers !
n°1542090
akilion
Born to be wild
Posté le 12-04-2007 à 16:16:15  profilanswer
 

Salut,
 
en fait j'ai encore un souci avec ce batch, ça marche super bien quand les fichiers sont de type variable comme b21, A15 ou autre, par contre si j'ai des fichiers en .txt ça ne fonctionne plus.
 
exemple , sur un fichier A1074.txt le batch me donne un fichier A1074_txt.toto et pas A1074_txt.toto.txt
 
à noter qu'avec un seul fichier .txt cela fonctionne, par contre dès qu'il ya plusieurs fichiers .txt ça ne fonctionne plus.
 
Help ! j'ai vraiment du mal à comprendre pourquoi ça foire !


---------------
en plein changement de carrière, 30 ans l'année de tous les dangers !
n°1542144
blastkille​r
Posté le 12-04-2007 à 17:11:06  profilanswer
 

@echo off
set var=0
for /f "tokens=2 delims=." %%a in ('dir /b') do call :commande %%a
pause
exit
:commande
set ext=%1
if %ext%==txt if %var%==1 goto suite
if %ext%==txt set var=1
if %ext%==bat goto suite
ren *.%ext% *.
ren *. *_%ext%.toto.txt
:suite

mood
Publicité
Posté le 12-04-2007 à 17:11:06  profilanswer
 

n°1542149
akilion
Born to be wild
Posté le 12-04-2007 à 17:15:00  profilanswer
 

Ha oui ! énorme !!!!
 
merci milles fois pour ton aide BlastKiller !
 
Juste une dernière chose, comme faire pour que le batch parcourt aussi les sous répertoires ? j'ai essayé de rajouter /s dans le in ('dir /b /s') mais ça fonctionne pas ? après promis je t'embête plus.


---------------
en plein changement de carrière, 30 ans l'année de tous les dangers !
n°1542174
blastkille​r
Posté le 12-04-2007 à 17:48:00  profilanswer
 

@echo off
set var=0
 
for /f "tokens=2 delims=." %%c in ('dir /b /s') do call :commande %%c
goto suite
:commande
set ext=%1
if %ext%==txt if %var%==1 goto :eof
if %ext%==txt set var=1
if %ext%==bat goto :eof
ren *.%ext% *.
ren *. *_%ext%.toto.txt
goto :eof
 
:suite
for /f "delims=" %%a in ('dir /b /s /a:d') do call :cmd "%%a"
pause
exit
 
:cmd
set var=0
set folder=%1
cd %folder%
 
for /f "tokens=2 delims=." %%b in ('dir /b') do call :commande %%b
goto :eof
:commande
set ext=%1
if %ext%==txt if %var%==1 goto :eof
if %ext%==txt set var=1
if %ext%==bat goto :eof
ren *.%ext% *.
ren *. *_%ext%.toto.txt


Message édité par blastkiller le 12-04-2007 à 17:48:08
n°2048590
Web Free S​oftware
Que du gratuit
Posté le 13-01-2011 à 08:05:56  profilanswer
 

Magnifiquement développé :love:
 
Si blastkiller ou quelqu'un d'autre pouvais passer par là, çà concerne aussi du batch :ange:  
 
http://forum.hardware.fr/hfr/Progr [...] 2074_1.htm


Message édité par Web Free Software le 13-01-2011 à 08:08:31

---------------
Web Free Software http://webfreesoftware.net Les logiciels gratuits

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

  Aide pour batch de renommage

 

Sujets relatifs
petite aide surement très simple pour labview[VB] besoin d'aide pour un problème
[excel+vba]ouvrir un batch faisant appel a une archive .jarProgramme DSQV, aide!!
Vim, LaTeX et PATH: besoin d'aide!Besoin d'aide sur un forum phpBB - ajout d'une page
[BATCH] DOS : rediriger a telnet une req HTTP contenue dans un .txtVB6 La fonction PUT me gonfle... A l'aide
aide vba sous accessAide moi faire les MCD suivants SVP!!!!!!
Plus de sujets relatifs à : Aide pour batch de renommage


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