Page 1 sur 1

Invite de commandes : nom de fichier avec la date [Résolu]

Posté : mar. 24 mai 2016 20:15
par cyrille
Bonjour,

J'ai la commande xcopy suivante dans un fichier batch :
xcopy "C:\Program Files (x86)\Collectorz.com\Movie Collector\*.*" "D:\DOSSIERS\DOSSIERS par DEFAULT ET SAUV\SAUV\COLLECTORZ\DONNES 2015" /Y /M /D>rapport_du_%DATE%.txt"

Comment faire pour que la date s'ajoute à la phrase" rapport du" à la fin de la commande pour sortir un rapport sous le nom Rapport du 24/05/2016 par ex. (date d'aujourd'hui) ?

J'ai essayé en mettant cette commande avant la commande xcopy :
set rapport=Rapport du %date%
J'obtiens bien Rapport du 24/05/2016.

Mais si j'écris rapport.txt ou %rapport%.txt après le caractère de redirection, j'obtiens n'importe quoi.

Si quelqu'un pouvait me donner l'astuce ... Merci d'avance pour le coup de main.

Cyrille

Re: Invite de commandes : nom de fichier avec la date

Posté : mar. 24 mai 2016 23:34
par PatriciaG
Bonjour,
Je pense que ton problème vient du caractère slash qui figure dans la date.
Il faut que tu enlèves ces barres obliques du nom de fichier, sinon ton batch cherche à créer un dossier.

Pour récupérer JJMMAAAA, cela va donner quelque chose comme :

set d=%date:~0,2%%date:~3,2%%date:~6,4%
xcopy "C:\Program Files (x86)\Collectorz.com\Movie Collector\*.*" "D:\DOSSIERS\DOSSIERS par DEFAULT ET SAUV\SAUV\COLLECTORZ\DONNES 2015" /Y /M /D>rapport_du_%d%.txt"

@+

Re: Invite de commandes : nom de fichier avec la date

Posté : mar. 24 mai 2016 23:59
par Alain Quarré
Bien Patricia!
La manipulation de variable en batch est peu connue, à moi de te dire que j'apprécie ce genre de réponse.

Permet moi d'y apporter quelque suppléments.

Pour utiliser la date dans le nom de fichier, j'utiliserais la méthode donnée par Patricia, mais en remettant la date dans l'ordre logique.
J'explique.
Si tu as une date au format JJMMAAAA, le classement des fichier ne sera pas correct. (tu auras tous les fichier du premier du mois, ensuite ceux du deuxième jour du mois, et ainsi de suite)

L'ordre logique doit être AAAAMMJJ
Cela permettra un affichage correct quand tu classera les fichiers selon leur nom.
Reprenons donc ce que Chantal nous donnait comme solution, mais dans le sens AAAAMMJJ
cela nous donne

Code : Tout sélectionner

set d=%date:~6,4%%date:~3,2%%date:~0,2%
Perso, j'y ajoute des tirets, pour une facilité de lecture:

Code : Tout sélectionner

set d=%date:~6,4%-%date:~3,2%-%date:~0,2%
et ensuite, ton rapport:

Code : Tout sélectionner

xcopy "C:\Program Files (x86)\Collectorz.com\Movie Collector\*.*" "D:\DOSSIERS\DOSSIERS par DEFAULT ET SAUV\SAUV\COLLECTORZ\DONNES 2015" /Y /M /D>rapport_du_%d%.txt"
Voilà, tu as de quoi faire.


Au fait, Cyrille, c'est féminin?

Re: Invite de commandes : nom de fichier avec la date

Posté : mer. 25 mai 2016 00:11
par PatriciaG
Bonjour Alain,
Merci pour tes compliments. :)

Je suis une vieille informaticienne, tu sais.
J'ai connu la programmation en langage machine et les cartes perforées, dans ma jeunesse. :mrgreen:

Mais je me suis éloignée de ce genre de programmation.

Tu évoques la méthode donnée par Chantal, mais les indications que j'ai fournies à Cyrille ne proviennent pas de Chantal, sinon, je l'aurais citée, par courtoisie.
Ce sont simplement des choses que j'ai apprises dans mes études informatiques.

Pour en revenir au sujet qui nous intéresse, bien entendu, l'ordre logique dot être AAAAMMJJ pour faciliter l'exploitation des fichiers.

Je n'ai pas précisé ce point, car je me suis contentée de répondre à la demande spécifique de Cyrille.
Je me suis placée dans le cadre de fichiers ponctuels et non destinés à un archivage.

Mais tu as raison d'en profiter pour apporter ces éléments complémentaires fort utiles et je t'en remercie. ;)

@+

Re: Invite de commandes : nom de fichier avec la date

Posté : mer. 25 mai 2016 00:25
par Alain Quarré
PatriciaG a écrit : Tu évoques la méthode donnée par Chantal
Faute de frappe, c'est Patricia qu'il faut lire. (suis pas tout jeune non plus)

Re: Invite de commandes : nom de fichier avec la date

Posté : mer. 25 mai 2016 00:30
par PatriciaG
Alain Quarré a écrit :
PatriciaG a écrit : Tu évoques la méthode donnée par Chantal
Faute de frappe, c'est Patricia qu'il faut lire. (suis pas tout jeune non plus)
Tu es tout excusé, Alain, et tes explications sont précieuses. :)

@+

Re: Invite de commandes : nom de fichier avec la date

Posté : mer. 25 mai 2016 08:09
par cyrille
Pour Alain quarré : Cyrille, c'est du masculin à une époque ou il n'existait qu'au masculin.
Hé oui, il parait qu'on est senior maintenant ! :lol:
Je n'étais pas informaticien à l'époque du DOS, mais je "bidouillait" la programmation par plaisir et j'ai découvert le DOS sous Amstrad CPC6128. D'ailleurs le DOS portait un nom légèrement différent (CP/M) à cette époque si ma mémoire est bonne. Je ne suis même pa sûr qu'à cette époque on pouvait faire du batch dessus.

Bref, j'ai suivi vos conseils Patricia et Alain. Tout fonctionne à merveille. Le nom du rapport sort bien sous la forme Rapport du 25-05-2016. :super:
je ne crois pas que j'y serais arrivé sans vous. J'ai portant vu pas mal de sîtes mais il manquait toujours le slash.

Question : Alain, tu parles d'inverser le contenu de la date :
jj-mm-aa par aa-mm-jj

pour pouvoir faire du tri par exemple.

Mais je ne comprend pas car si je fais un dir dans l'invite de commande, les dates des fichiers s'affichent sous la forme jj-mm-aa, idem sous l'explorer Windows. Tu peux m'expliquer ?

Re: Invite de commandes : nom de fichier avec la date

Posté : mer. 25 mai 2016 08:22
par PatriciaG
Bonjour,
Tant mieux si nous avons pu résoudre ton problème, Alain et moi.

Bien que ta question s'adresse à Alain, je me permets de te répondre, d'autant que j'ai participé au fil de discussion, dans lequel j'ai même fourni la première réponse. ;)

Effectivement, l'inversion du contenu de la date permet de trier les fichiers par ordre chronologique, AAAAMMJJ.

L'affichage des dates est effectué sous la forme usuelle de lecture, pour le confort de l'utilisateur, mais cela n'empêche pas que les dates sont gérées logiquement, dans tout le système Windows, commandes DOS et explorateur de fichiers inclus.
Ainsi, par exemple, 21-12-2015 < 01-01-2016, selon l'ordre (chrono)logique.

@+

Re: Invite de commandes : nom de fichier avec la date [Réslu]

Posté : jeu. 26 mai 2016 14:36
par cyrille
J'ai compris.

J'ai confondu la date de création ou de modification d'un fichier
avec l'affichage des noms de fichiers avec dates inclus.

Merci

PS : j'ai un autre post intitulé Planification ... Configurer pour si vous voulez

Re: Invite de commandes : nom de fichier avec la date [Résolu]

Posté : jeu. 26 mai 2016 23:25
par PatriciaG
Bonsoir,
De rien. ;)

Tout est donc clair pour toi sur ce point.

J'ai vu que tu as posté deux autres sujets et Alain Quarré t'a répondu.

Je te remercie d'avoir pensé à clôturer ce topic.
N'oublie pas de faire la même chose pour les autres, comme celui-ci topic17338.html

@+