[MS-DOS] Créer un dossier avec la date du jour

Créer un dossier avec la date du jour [MS-DOS] - Shell/Batch - Programmation

Marsh Posté le 21-07-2002 à 19:04:13    

je souhaite créer un fichier BATCH qui permet de suavegarder le contenu d'un dossier.
Lors de cette sauvegarde, je souhaite qu'un dossier soit créer avec la date du jour. Dossier dans lequel vont être placés les fichiers sauvegardés.
 
Comment faire pour créer un dossier avec la date du jour.

Reply

Marsh Posté le 21-07-2002 à 19:04:13   

Reply

Marsh Posté le 21-07-2002 à 19:35:13    

Code :
  1. @echo off
  2. :#debut
  3. :: indicateur de passage
  4. :: ---------------------
  5. if %1!==! goto #fichier
  6. if %2!==! goto #semaine
  7. if %3!==! goto #jour
  8. if %4!==! goto #mois
  9. :: extraire l'ann?e
  10. :: ----------------
  11. find "/19%4" $fic.fmr$ > nul
  12. if not errorlevel==1 if errorlevel==0 set _annee=19%4
  13. find "/20%4" $fic.fmr$ > nul
  14. if not errorlevel==1 if errorlevel==0 set _annee=20%4
  15. goto #fin
  16. :: extraire le mois
  17. :: ----------------
  18. :#mois
  19. find "/%3/" $fic.fmr$ > nul
  20. if not errorlevel==1 if errorlevel==0 set _mois=%3
  21. goto #fin
  22. :: extraire le jour
  23. :: ----------------
  24. :#jour
  25. find " %2/" $fic.fmr$ > nul
  26. if not errorlevel==1 if errorlevel==0 set _jour=%2
  27. goto #fin
  28. :: extraire le jour de la semaine
  29. :: ------------------------------
  30. :#semaine
  31. find /i "%1" $fic.fmr$ > nul
  32. if not errorlevel==1 if errorlevel==0 set _semaine=%1
  33. goto #fin
  34. :: copier la date dans un fichier
  35. :: ------------------------------
  36. :#fichier
  37. echo.|date > $fic.fmr$
  38. :: appels r?cursifs
  39. :: ----------------
  40. for %%d in (Dim Lun Mar Mer Jeu Ven Sam) do call %0 %%d
  41. for %%d in (01 02 03 04 05 06 07 08 09 10) do call %0 x %%d
  42. for %%d in (11 12 13 14 15 16 17 18 19 20) do call %0 x %%d
  43. for %%d in (21 22 23 24 25 26 27 28 29 30 31) do call %0 x %%d
  44. for %%d in (01 02 03 04 05 06 07 08 09 10 11 12) do call %0 x x %%d
  45. for %%d in (99 00 01 02) do call %0 x x x %%d
  46. :: cr?er le r?pertoire
  47. :: -------------------
  48. md %_semaine%_%_jour%_%_mois%_%_annee%
  49. :: faire le m?nage
  50. :: ---------------
  51. set _annee=
  52. set _mois=
  53. set _jour=
  54. set _semaine=
  55. del $fic.fmr$
  56. :#fin

Reply

Marsh Posté le 21-07-2002 à 19:56:40    

merci beaucoup !!

Reply

Marsh Posté le 21-07-2002 à 21:41:41    

:ouch: Dire qu'il suffit d'une ligne sous Linux/Unix : mkdir `date '+%Y%m%d'` :ange:

Reply

Marsh Posté le 22-07-2002 à 01:12:54    

VIVA EL LINUX !!!!!!!!!

Reply

Marsh Posté le 21-10-2002 à 23:13:02    

moi je trouve que ça c'est déjà plus court !!!!
 
md toto
echo t | xcopy *.* toto
for /F "tokens=1,2,3,4 delims=/, " %%i in ('date /T';) do set  savedate=%%i-%%j-%%k
rename toto %savedate%
 
ATTENTION: for /F ... savedate=%%i-%%j-%%k    sur 1 seule ligne.
 
a+

Reply

Marsh Posté le 26-10-2002 à 18:11:37    

Par contre, j'ai constaté que la séquence ci-dessus marche très bien sous NT/XP mais pas sous un W95 => message erreur de syntaxe.
 
Il semble que ce soit le FOR qui ne soit pas reconnu
 
Quelqu'un sait il pourquoi ? Et comment le faire fonctionner aussi ...

Reply

Sujets relatifs:

Leave a Replay

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