Renommer un fichier avec la date du jour

Renommer un fichier avec la date du jour - Shell/Batch - Programmation

Marsh Posté le 16-01-2006 à 17:15:32    

J'ai créé un fichier .bat qui copie et renomme un autre fichier, mais je voudrais associer à ce nom de fichier la date du jour d'execution, et ce périodiquement afin de conserver une trace hebdomadaire.
Peut-on m'aider SVP??  :hello:


Message édité par Lau_18 le 17-01-2006 à 16:43:17
Reply

Marsh Posté le 16-01-2006 à 17:15:32   

Reply

Marsh Posté le 16-01-2006 à 20:54:38    

Tu as la variable
DATE
puis pour extraire les sous-chaînes ou supprimer les caractères non désirés, regarde l'aide de la commande
set
Fais
set /?
à l'invite de commandes pour plus d'infos + les exemples.

Reply

Marsh Posté le 17-01-2006 à 11:45:31    

J'ai éditer l'aide de 'set' et n'arrive pas pour autant à associer la date du jour à ce fichier
Merci de ton aide  ;)


Message édité par Lau_18 le 17-01-2006 à 11:46:56
Reply

Marsh Posté le 17-01-2006 à 13:19:42    

Tu peux poster ton script actuel ?
 
Sinon, une petite recherche sur ce forum même, c'est une question qu'on rencontre tous les trois jours ;)

Reply

Marsh Posté le 17-01-2006 à 14:22:58    

Tout ce qu'il y a de plus simple
 
copy W:\peri_op\exp_adm\log\trf_crss_SDL7.log S:\CRSS_LOG\trans_sdl.txt
 
et je voudrais associer la date du jour au fichier "trans_sdl.txt", c'est une opération que j'ai a réaliser hebdomadairement, je n'ai pas été plus loin. Je n'ai pas trouvé de réponse sur le forum, je suis "très" novice en la matière, soit indulgent  ;)  
Merci de ton aide


Message édité par Lau_18 le 17-01-2006 à 14:24:30
Reply

Marsh Posté le 17-01-2006 à 15:27:22    

Alors, pour récupérer la date du jour, tu as la variable
DATE
 
et comme je disais, si tu faisais :
set /?
 
tu verras que :
set VAR1=%VAR:~x,y%
 
extrait y caractères à partir de la position x, les caractères étant indexés à partir de 0.
 
Juste fais un :
set JJ=%DATE:~0,2%
echo %JJ%
 
par exemple pour comprendre.
 
Je suppose que tu sais comment concaténer les variables :
set VAR=%VAR1%%VAR2%
 
Voilà, essaie et dis si ça t'aide à avancer. Pas de souci pour procéder ensemble étape par étape ;)

Reply

Marsh Posté le 17-01-2006 à 15:41:20    

[Re merci de ton aide, ça m'aide (bien que je ne sois pas au bout de mes peines ... lol)
 
J'ai ajouté ce qui suit :  
 
set jour=%DATE:~0,2%  
set mois=%DATE:~3,2%  
set annee=%DATE:~6,4%  
set madate=%annee%-%mois%-%jour%  
echo %madate%
avant la commande de copy ...
et inséré %madate% dans le nom du ficher  
j'ai toujours un message d'erreur "paramètre non valide"

Reply

Marsh Posté le 17-01-2006 à 15:41:20    

Dans le meme style :
SET MYVAR=%DATE:/=_%   (remplace la date 15/01/2006 par 15_01_2006) ou alors %DATE:/=% ca donne 15012006
copy myfile.txt %MYVAR%.txt
 
ca devrait coller

Reply

Marsh Posté le 17-01-2006 à 15:43:55    

Desole , je desactive les smileys
 
SET MYVAR=%DATE:/=_%  donne la date en format 15_01_2006 ou alors %DATE:/=% donne 15012006
ensuite
copy myfile.txt %MYVAR%.txt
 
le tour est joue .. Attention au format date donne par %DATE%, a regler eventuellement dans les Regional Settings

Reply

Marsh Posté le 17-01-2006 à 15:46:40    

Le remplacement de caractères est aussi une direction, mais moins générique que l'extraction des sous-chaînes, des fois (est-ce ça arrive ? je ne m'en souviens plus ;)) que le séparateur n'est pas le /.
 
Comment tu colles le truc au nom de ton fichier ? Poste ton nouveau script.

Reply

Marsh Posté le 17-01-2006 à 15:46:40   

Reply

Marsh Posté le 17-01-2006 à 15:52:24    

Pas de soucis, je l'avais compris "sans smiley"   ;)  
Merci quand même


Message édité par Lau_18 le 17-01-2006 à 15:56:27
Reply

Marsh Posté le 17-01-2006 à 15:54:40    

Voici mon script :
 
set jour=%DATE:~0,2%  
set mois=%DATE:~3,2%  
set annee=%DATE:~6,4%  
set madate=%annee%%mois%%jour%
echo %madate%  
copy W:\peri_op\exp_adm\log\trf_crss_SDL7.log S:\CRSS_LOG\trans_sdl%madate%.txt

 
manque qque chose certainement, mais je suis loin d'être une spécialiste ... ce n'est qu'un rêve  
 
 ;)  :)


Message édité par Lau_18 le 17-01-2006 à 15:55:42
Reply

Marsh Posté le 17-01-2006 à 16:09:59    

YESSSSSSSSSS !! et merci beaucoup (je l'ai allègé)
 
voici le script qui à l'air de fonctionner :  
 
set myvar=%DATE:/=%
copy W:\[nom_du_répertoire]\....\[nom_du_fichier].log S:\[nom_du_répertoire]\[nom_du_fichier]%myvar%.txt
 
Merci de votre aide, j'y serais pas arrivée seule  
Big kisssssss


Message édité par Lau_18 le 17-01-2006 à 16:46:20
Reply

Marsh Posté le 17-01-2006 à 16:12:25    

Euh je n'y vois pas d'erreur ;)
 
Mais là je suis sous Linux, pas de Windows sous la main.
 
Peux-tu enlever/commenter la ligne  
@echo off
au début de ton script, si elle y est, pour voir à quelle ligne l'erreur
Paramètre non valide
se produit ?
 
Edit : OK. Je vois que tu as opté pour l'autre méthode ;)
@+


Message édité par wackevat le 17-01-2006 à 16:13:20
Reply

Marsh Posté le 17-01-2006 à 16:44:07    

Merci de ton aide
ça fonctionne bien avec le script inscrit plus haut  :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed