Valeur non retournée par une fonction.
Bonjour,
C'est un honneur de pouvoir participer à ce forum.
Voici le code de mon BATCH.
Tout d'abord, je transforme la date du jour avec ceci (le calcul se fait dans l'etape010:
Code:
1 2 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
| :ETAPE005
FOR /F "usebackq tokens=1,2,3 delims=- " %%F IN (`"DATE /T"`) DO (
call :ETAPE010 %%H %%G %%F
)
set DateAujd=%Z%
goto ETAPE015
exit /b
:ETAPE010
set Day=%1
set Month=%2
set Year=%3
REM Delete Leading Zeros
set Char=%Day:~0,1%
if %Char%==0 set Day=%Day:~1,1%
set Char=%Month:~0,1%
if %Char%==0 set Month=%Month:~1,1%
if %Month% LEQ 2 (
set /A Year-=1
set /A Month+=12
)
set /A Month+=1
set /A A=%Year%/100
set /A B=2-%A%+%A%/4
set /A C=36525*%Year%/100
set /A D=306001*%Month%/10000
set /A E=%Day%+1720995+%B%
set /A Z=%C%+%D%+%E%
Rem la valeur z ne retourne pas depuis la fonction etape015
exit /b
:ETAPE015
FOR /F "USEBACKQ SKIP=7 TOKENS=1,4" %%I IN (`"DIR /A:D"`) DO (
ECHO %%I %%J > AAA_SIMON_123.tmp
FOR /F "USEBACKQ tokens=1,2,3 delims=- " %%K in (AAA_SIMON_123.tmp) DO (
CALL :ETAPE010 %%M %%L %%K
ECHO %Z% : NBJOUR DU DIR POUR DIFF
set /A Diff=%DateAujd%-%Z%
ECHO %Diff%
IF /I %Diff% GEQ %nbJours% rd %%J /S /Q
)
)
del /Q AAA_SIMON_123.tmp
goto FIN
exit /b
:FIN |
J'ai aussi auparavant tenté le 2ème for de l'etape015 de la façon suivante, mais ca ne retourne pas %%K %%L et %%M.
Code:
1 2 3 4 5 6 7 8 9 10
| :ETAPE015
FOR /F "USEBACKQ SKIP=7 TOKENS=1,4" %%I IN (`"DIR /A:D"`) DO (
FOR /F "USEBACKQ tokens=1,2,3 delims=- " %%K in ("%%I") DO (
CALL :ETAPE010 %%M %%L %%K
SET /A Diff=%DateAujd%-%Z%
IF /I %Diff% GEQ %nbJours% rd %%J /S /Q
)
)
goto FIN
exit /b |
Pouvez-vous m'aider à savoir comment rendre la variable %Z% globale ?
Merci!