Aide pour batch de renommage - Shell/Batch - Programmation
Marsh Posté le 23-02-2007 à 16:14:39
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)
Marsh Posté le 26-02-2007 à 11:09:09
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).
Marsh Posté le 26-02-2007 à 12:25:04
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 ?
Marsh Posté le 26-02-2007 à 15:14:09
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.
Marsh Posté le 26-02-2007 à 16:52:09
@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
Marsh Posté le 26-02-2007 à 17:06:17
blastkiller a écrit : @echo off |
ca marche nikel !!!!
merci !!!
(je comprends rien au shell mais je savais bien que c'était possible)
Marsh Posté le 12-04-2007 à 16:16:15
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 !
Marsh Posté le 12-04-2007 à 17:11:06
@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
Marsh Posté le 12-04-2007 à 17:15:00
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.
Marsh Posté le 12-04-2007 à 17:48:00
@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
Marsh Posté le 13-01-2011 à 08:05:56
Magnifiquement développé
Si blastkiller ou quelqu'un d'autre pouvais passer par là, çà concerne aussi du batch
http://forum.hardware.fr/hfr/Progr [...] 2074_1.htm
Marsh Posté le 22-02-2007 à 18:25:13
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 !