Page 1 sur 1
Rename avec variable
Posté : 20 nov. 2008 18:27
par sam06
Bonjour à tous,
J'ai un petit batch qui me permet de concaténer une série de fichiers TXT présents dans un même répertoire, vers un fichier résultat. C'est de la forme :
copy *.txt result.tmp
rename result.tmp result.txt
Les fichiers sont par ex :
AADEFGH lundi 01.txt
AADEFGH mardi 02.txt
etc...
est-il possible que le fichier final se renomme avec juste le radical, c'est à dire par ex. ici "AADEFGH.txt". En clair, prendre les premiers caractères du nom et s'arrêter à l'espace ? ("AADEFGH" est un exemple, ça pourrai aussi être "GGTS lundi 01.txt")
par avance merci de votre aide.
Re: Rename avec variable
Posté : 21 nov. 2008 13:02
par sam06
Bon, je vais simplifier l'approche, en renommant simplement result.txt par les 8 premiers caractères du nom de fichier, par un script du genre :
SET src= lenomdufichier
SET filename=%src:~1,8%
ren result.txt %filename%.txt
il me reste juste à récupérer le nom du premier fichier txt trouvé dans le répertoire courant, peu importe lequel. Avez-vous un piste ? merci par avance.
Re: Rename avec variable
Posté : 21 nov. 2008 15:55
par flox
Bonjour,
il est possible d'extraire la liste des fichiers d'un répertoire avec la commande "dir", en faisant une redirection dans un fichier, mais pour sélectionner uniquement les fichiers .txt la je ne sais pas.
bonne continuation
cordialement.
Re: Rename avec variable
Posté : 21 nov. 2008 17:59
par sam06
J'ai trouvé une solution, je sais pas si niveau programmation c'est très académique, mais ça fonctionne ! Je poste quand même, si ça peut aider quelqu'un :
REM fusion de plusieurs fichiers TXT
dir /B *.txt > liste.log
copy *.txt result.tmp
FOR /F %%i in (liste.log) DO (set filename=%%i)
ren result.tmp %filename%.txt
ça résoud par la même occasion le problème du nombre de caractères : ça s'arrête à l'espace.
S'il y a une solution + élégante que de devoir faire un loop sur tous les fichiers, je suis preneur !
Re: Rename avec variable
Posté : 21 nov. 2008 22:25
par Bigfish
Salut,
voici une solution pour recupperer tout les fichiers texts du repertoire specifié et pour génerer un nouveau nom de fichier uniquement a partir du premier fichier trouvé.
Code : Tout sélectionner
@echo off
rem permet de lister tout les fichiers dont l'extention est .txt et de ne passer en parametre que les noms
for /r "c:\temp" %%i in (*.txt) do call :subroutine "%%~ni"
:subroutine
rem on recuppere le parametre sans les double-quotes
set filename=%~1
rem on extrait la chaine avant le premiere espace et on cree le nouveau nom de fichier
for /f "tokens=1 delims= " %%i in ("%filename%") do set filename=%%i.txt
echo %filename%
pause
rem comme le 1ere fichier trouvé suffit et pour eviter de boucler sur les autres fichier pour rien, on sort
exit
A+
Re: Rename avec variable
Posté : 22 nov. 2008 12:47
par sam06
ça fonctionne nickel, merci beaucoup !
J'ai trouvé un lien intéressant pour tout ce qui tourne autour de la gestion du Rename, c'est un peu compliqué pour moi, mais ça peut donner quelques idées de scripts à d'autres :
http://www.experts-exchange.com/Operati ... 73735.html
Je pense qu'on peut mettre le tag [Résolu] sur le topic, mais je ne sais pas comment faire !
Certainly has you to like
Posté : 14 janv. 2009 09:07
par rjrenjian
centrifugeCertainly has you to like
------------------------------------------------------------------------------------------------------------------------------------
replica rolex
replica watches paypal
replica watch paypal
replica chopard paypal