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.
Publicité
Posté le 21-07-2002 à 19:04:13
*syl*
--> []
Posté le 21-07-2002 à 19:35:13
Code :
@echo off
:#debut
:: indicateur de passage
:: ---------------------
if %1!==! goto #fichier
if %2!==! goto #semaine
if %3!==! goto #jour
if %4!==! goto #mois
:: extraire l'ann?e
:: ----------------
find "/19%4" $fic.fmr$ > nul
if not errorlevel==1 if errorlevel==0 set _annee=19%4
find "/20%4" $fic.fmr$ > nul
if not errorlevel==1 if errorlevel==0 set _annee=20%4
goto #fin
:: extraire le mois
:: ----------------
:#mois
find "/%3/" $fic.fmr$ > nul
if not errorlevel==1 if errorlevel==0 set _mois=%3
goto #fin
:: extraire le jour
:: ----------------
:#jour
find " %2/" $fic.fmr$ > nul
if not errorlevel==1 if errorlevel==0 set _jour=%2
goto #fin
:: extraire le jour de la semaine
:: ------------------------------
:#semaine
find /i "%1" $fic.fmr$ > nul
if not errorlevel==1 if errorlevel==0 set _semaine=%1
goto #fin
:: copier la date dans un fichier
:: ------------------------------
:#fichier
echo.|date > $fic.fmr$
:: appels r?cursifs
:: ----------------
for %%d in (Dim Lun Mar Mer Jeu Ven Sam) do call %0 %%d
for %%d in (01 02 03 04 05 06 07 08 09 10) do call %0 x %%d
for %%d in (11 12 13 14 15 16 17 18 19 20) do call %0 x %%d
for %%d in (21 22 23 24 25 26 27 28 29 30 31) do call %0 x %%d
for %%d in (01 02 03 04 05 06 07 08 09 10 11 12) do call %0 x x %%d
for %%d in (99 00 01 02) do call %0 x x x %%d
:: cr?er le r?pertoire
:: -------------------
md %_semaine%_%_jour%_%_mois%_%_annee%
:: faire le m?nage
:: ---------------
set _annee=
set _mois=
set _jour=
set _semaine=
del $fic.fmr$
:#fin
blueman_82
Posté le 21-07-2002 à 19:56:40
merci beaucoup !!
gm_superstar
Appelez-moi Super
Posté le 21-07-2002 à 21:41:41
Dire qu'il suffit d'une ligne sous Linux/Unix : mkdir `date '+%Y%m%d'`
Blackangel
Merde
Posté le 22-07-2002 à 01:12:54
VIVA EL LINUX !!!!!!!!!
colapaca
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+
colapaca
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 ...