En fait, avec les extensions de commande, tu ne peux hélas 
PAS déterminer comme ça le jour courant...
Petite illustration :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 
 | @echo off
setlocal enableextensions
echo With extensions:
REM Habituellement remplacé par "date /t", qui évite d'avoir à découper le résultat...
echo. > __dummy__
date < __dummy__ > __dummy2__
type __dummy2__
del /q __dummy__ __dummy2__ > NUL
echo.
endlocal
setlocal disableextensions
echo No extensions:
echo. > __dummy__
date < __dummy__ > __dummy2__
type __dummy2__
del /q __dummy__ __dummy2__ > NUL
echo.
endlocal | 
 Le résultat de la commande donne ceci :
	
	| 12
 3
 4
 5
 6
 7
 
 | With extensions:
La date du jour est : 03/03/2010
Entrez la nouvelle date : (jj-mm-aa)
No extensions:
La date du jour est : mer. 03/03/2010
Entrez la nouvelle date : (jj-mm-aa) | 
 Notez la partie en rouge.
Donc, pour récupérer la date courante, tu peux tester ce batch :
	
	| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 
 | @echo off
setlocal enableextensions enabledelayedexpansion
call :getcurrentday JOUR
echo Nous sommes le jour !JOUR! de la semaine.
goto :eof
REM Paramètre %1 : ***NOM*** de la variable qui va recevoir le jour de la semaine.
REM Retour : jour numérique de la semaine, Lundi=1, Mardi=2, ... Dimanche=7.
:getcurrentday
if @%1==@ (
	echo :getcurrentday =^> missing parameter.
	goto :eof
)
set gcd_tmp=__dummy__
REM Bloc sans extensions de commandes.
	setlocal disableextensions
	echo. > %gcd_tmp%2
	date < %gcd_tmp%2 > %gcd_tmp%
	endlocal
REM Filtrage du résultat.
for /f "usebackq tokens=1,* delims=:" %%I in (`type %gcd_tmp% ^| find "%DATE%"`) do (
	set gcd_date=%%J
)
del /q %gcd_tmp% %gcd_tmp%2 > NUL
REM Découpe du jour de la semaine, on garde 3 lettres uniquement.
for /f "usebackq tokens=1" %%I in (`echo %gcd_date%`) do (
	set gcd_day=%%I
	set gcd_day=!gcd_day:.=!
	set gcd_day=!gcd_day:~0,3!
)
REM Analyse du jour (français/anglais).
if /i !gcd_day! EQU lun set /a %1=1
if /i !gcd_day! EQU mon set /a %1=1
if /i !gcd_day! EQU mar set /a %1=2
if /i !gcd_day! EQU tue set /a %1=2
if /i !gcd_day! EQU mer set /a %1=3
if /i !gcd_day! EQU wed set /a %1=3
if /i !gcd_day! EQU jeu set /a %1=4
if /i !gcd_day! EQU thu set /a %1=4
if /i !gcd_day! EQU ven set /a %1=5
if /i !gcd_day! EQU fri set /a %1=5
if /i !gcd_day! EQU sam set /a %1=6
if /i !gcd_day! EQU sat set /a %1=6
if /i !gcd_day! EQU dim set /a %1=7
if /i !gcd_day! EQU sun set /a %1=7
set gcd_tmp=
set gcd_date=
set gcd_day=
goto :eof | 
 Tu peux directement copier/coller le sous-programme ":getcurrentday" dans ton propre batch, et regarde l'exemple d'utilisation au début.
Attention, il te FAUT ajouter le "setlocal" initial (ligne 2), tel quel, sinon cela ne marchera pas.
Partager