Batch pour renommer des fichiers [Résolu/Fermé]

Signaler
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
-
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
-
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

Messages postés
6746
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 529
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22
c'est-à-dire ?

mon fichier bat est sur le bureau, c'est pour ça que j'ai mis le chemin absolu du dossier "test"...
Messages postés
6746
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 529 >
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009

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"...

Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22 >
Messages postés
6746
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016

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...
Messages postés
86
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
1 août 2009
35
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
Messages postés
86
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
1 août 2009
35
En gros tu veux renommer les fichier que tu recoit et tu veux renommer a la date du jour??? C'est sa??
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22
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 ?
Messages postés
654
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
6 mai 2012
78
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 ?
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22
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! !
Messages postés
6746
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 529 >
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009

Effectivement le caractère / pose souvent problème, mais un - fait largement l'affaire :)
Messages postés
654
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
6 mai 2012
78
@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
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22
Ca marche nikel !!
Merci pour ton aide (et aux autres aussi ^^)

A+
Messages postés
181
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
12 novembre 2009
22
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 !!!)