Batch pour renommer des fichiers

Résolu/Fermé
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 - 7 mai 2008 à 11:33
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 - 7 mai 2008 à 13:59
Bonjour,

Je vous décrit rapidement mon problème : je récupère des rapports mensuels en formats html dans un dossier c:\test et je dois les renommer automatiquement (donc je ne peux pas utiliser de logiciels du genre "Ant Renamer"...) :

ancien nom : "Rapport type 1 - 01-04-08 12'00'00.html"
Je voudrais que leur nouveaux noms soient uniquement la date système récupérée avec la variable %date%

Voilà le petit batch que je me suis fait, mais qui ne marche pas (encore :p) :

@echo off

cd c:\test

set new=%date%

for %%x in (*.html) do rename "%%x" "%new%"

pause


Lorsque j'éxecute le .bat : il me retourne l'erreur : Le chemin d'accès spécifié est introuvable.

Je ne serais pas contre un petit coup de main...

Merci à ceux qui donneront un peu de temps pour ce modeste problème !!

A+

6 réponses

HostOfSeraphim Messages postés 6746 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 626
7 mai 2008 à 11:40
Essaye de faire un echo sur le répertoire courant histoire de voir où il se situe, vu que le chemin ne semble pas OK.
1
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22
7 mai 2008 à 11:48
c'est-à-dire ?

mon fichier bat est sur le bureau, c'est pour ça que j'ai mis le chemin absolu du dossier "test"...
0
HostOfSeraphim Messages postés 6746 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 626 > Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009
7 mai 2008 à 11:50
Je ne connais pas suffisamment Windows pour t'indiquer exactement la bonne syntaxe... mais je me demande si en enlevant le echo off, ça ne te sortirait pas tous les messages d'erreurs ainsi que la progression du script.

Par contre, là je suis sur Windows (boulot oblige...), et un "cd C:\TEMP" ne marche pas ; essaye avec C: d'abord et cd test ensuite ?


Edit : j'ai corrigé "C:\TEMP" en "cd C:\TEMP"...

0
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22 > HostOfSeraphim Messages postés 6746 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016
7 mai 2008 à 11:59
Voila ce que ca me donne en mode debug :

C:\Documents and Settings\stitt\Bureau>cd "c:\test"

C:\test>set new=07/05/2008

C:\test>for %x in (*.html) do rename "%x" "07/05/2008"

C:\test>rename "rapport type 1 - 01-01-08 12'00'00.html" "07/05/2008"
Le chemin d'accès spécifié est introuvable.

C:\test>rename "rapport type 1 - 01-02-08 12'00'00.html" "07/05/2008"
Le chemin d'accès spécifié est introuvable.

C:\test>rename "rapport type 1 - 01-03-08 12'00'00.html" "07/05/2008"
Le chemin d'accès spécifié est introuvable.

C:\test>pause
Appuyez sur une touche pour continuer...
0
Clem535317 Messages postés 86 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 1 août 2009 35
7 mai 2008 à 11:36
Je peut essayer de t'aider mais je ne te garanti rien Si tu a msn prend mon adresse dans le profil et rentre moi on pourra tester ton batch
0
Clem535317 Messages postés 86 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 1 août 2009 35
7 mai 2008 à 11:39
En gros tu veux renommer les fichier que tu recoit et tu veux renommer a la date du jour??? C'est sa??
0
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22
7 mai 2008 à 11:47
oui c'est ca, par contre je suis au boulot et je n'ai pas msn :s
Pourrais-tu me donner un coup de main directement sur le forum ?
0
JuB0 Messages postés 654 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 6 mai 2012 79
7 mai 2008 à 11:53
Salut,
En gros ta variable "new" contient aujourd'hui "07/05/2008".

Essaies de creer un fichier nommé "07/05/2008.html", tu y arrives ?
0
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22
7 mai 2008 à 12:02
non ca ne marche pas....caractère interdit "/".....il faudrait donc que je reformate ma variable new pour remplacer les "/" par des "-" ?

ps : je suis de retour a 13h au boulot ! (mais je serais peut-etre en déplacement...)

Merci de vos conseils,
je reposterais quand je reprendrai ce mini-projet! !
0
HostOfSeraphim Messages postés 6746 Date d'inscription jeudi 2 février 2006 Statut Contributeur Dernière intervention 31 juillet 2016 1 626 > Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009
7 mai 2008 à 12:02
Effectivement le caractère / pose souvent problème, mais un - fait largement l'affaire :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JuB0 Messages postés 654 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 6 mai 2012 79
7 mai 2008 à 12:00
@echo off
cd c:\test
set new=%date:~0,2%.%date:~3,2%.%date:~6,4%.html
for %%x in (*.html) do rename "%%x" "%new%"
pause
0
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22
7 mai 2008 à 13:02
Ca marche nikel !!
Merci pour ton aide (et aux autres aussi ^^)

A+
0
Theizzz Messages postés 181 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 12 novembre 2009 22
7 mai 2008 à 13:59
C'est re-moi !

Bon ben il y a eu du changement :

maintenant cette moulinette doit effectuer ce changement de nom sur certain fichiers uniquements et dans plusieurs dossier à la fois...je vous mets l'architecture des dossiers pour que vous compreniez mieux :


├───Rapports
│ ├───Details_appels_filiales_kuhn
│ │ └───Details_ - 07-05-08 13'26'23
│ │ chart57313.png
│ │ chart57314.png
│ │ data.html
│ │ Details_ - 07-05-08 13'26'23.html
│ │ tree.html
│ │
│ ├───Details_appels_GSM_Audureau
│ │ └───Details_d - 07-05-08 13'28'19
│ │ data.html
│ │ Details_d - 07-05-08 13'28'19.html
│ │ tree.html
│ │
│ ├───Details_appels_GSM_Huard
│ │ └───Details_des_ - 07-05-08 13'27'53
│ │ data.html
│ │ Details_des_ - 07-05-08 13'27'53.html
│ │ tree.html
│ │
│ ├───Details_appels_GSM_Saverne
│ │ └───Details_de - 07-05-08 13'29'50
│ │ data.html
│ │ Details_de - 07-05-08 13'29'50.html
│ │ tree.html
│ │
│ ├───Details_de_tout_les_appels
│ │ └───Details_de - 07-05-08 13'27'21
│ │ chart47280.png
│ │ chart47281.png
│ │ data.html
│ │ Details_de - 07-05-08 13'27'21.html
│ │ tree.html
│ │
│ └───Temps_attente_standard
│ └───Temps_attente_ - 07-05-08 13'26'04
│ data.html
│ Temps_attente_ - 07-05-08 13'26'04.html
│ tree.html

donc voila ce que je dois faire en plus :
- renommer uniquement le fichier du type "Temps_attente_ - 07-05-08 13'26'04.html" (ca c'est bon j'ai réussi à le faire !)
- la moulinette doit renommer chaque début de mois le fichier html qui est envoyé par le serveur de téléphonie !
donc, chaque début de moi, il y a un nouveau dossier avec le meme nom mais la date change...

Question : comment faire pour modifier les noms des fichiers html dans tout les dossiers ?

Rappel, voici l'état de mon fichier .bat :
@echo off
cd "c:\test\Rapports\Details_appels_filiales_kuhn\Details_ -  07-05-08 13'26'23"
set new=%date:~0,2%.%date:~3,2%.%date:~6,4%.html 
for %%x in (*_*.html) do rename "%%x" "%new%" 
pause


Si quelqu'un est motivé pour me filer un coup de main parce que je suis novice en prog....
D'ailleurs, si quelq'un à une autre solution, sachant que le programme qui renomme les fichiers html doit être exécuté automatiquement tous le 1er du mois !

Merci (d'avoir lu jusqu'au bout !!!)
0