Shell Windows [Batch]
Scouby64
Messages postés
188
Date d'inscription
Statut
Membre
Dernière intervention
-
Scouby64 Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
Scouby64 Messages postés 188 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à automatiser la suppression de sauvegarde au bout d'un certain nombre de jour sur le serveur de sauvegarde de mon entreprise.
J'arrive à un résultat qui bloque au niveau de la boucle FOR :
Pourriez vous m'aider?
Merci d'avance.
Je cherche à automatiser la suppression de sauvegarde au bout d'un certain nombre de jour sur le serveur de sauvegarde de mon entreprise.
J'arrive à un résultat qui bloque au niveau de la boucle FOR :
@ECHO ON
REM VARIABLES :
SET YYYYMMDD=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
SET mois=%DATE:~3,2%
SET jour=%DATE:~0,2%
SET moismax="01-03-05-07-08-10-12"
SET moismin="04-06-09-11"
SET moisfev="02"
REM DEBUT :
MKDIR %YYYYMMDD%
REM ON DESCIDE DE GARDER 14j DE SAUVEGARDE
SET /a jour-=14
IF %jour% GEQ 1 GOTO OK
FOR /F "TOKENS=%i DELIMS=-" %%i IN %moismax% DO(
IF %mois%=%%i IN %moismax% GOTO MAX
IF %mois%=%%i IN %moisfev% GOTO FEV
GOTO MIN
)
REM SI MEME MOIS
:OK
SET nYYYYMMJJ=%DATE:~6,4%-%DATE:~3,2%-%jour%
GOTO SUITE
REM SI MOIS DE 31j
:MAX
SET njour=%jour%
REM SET njour=%njour%*(-1)
SET njour=31+%njour%
SET nmois=%i%-1
SET nYYYYMMDD=%DATE:~6,4%-%nmois%-%njour%
GOTO SUITE
REM SI MOIS DE FEVRIER
:FEV
SET njour=%jour%
REM SET njour=%njour%*(-1)
SET njour=28+%njour%
SET nmois=%i%-1
SET nYYYYMMDD=%DATE:~6,4%-%nmois%-%njour%
GOTO SUITE
REM SI MOIS DE 30j
:MIN
SET njour=%jour%
REM SET njour=%njour%*(-1)
SET njour=30+%njour%
SET nmois=%i%-1
SET nYYYYMMDD=%DATE:~6,4%-%nmois%-%njour%
GOTO SUITE
REM SUPPRESSION ANCIENNE SAUVEGARDE
:SUITE
RD %nYYYYMMDD% /s /q
GOTO FIN
:FIN
PAUSE>NUL
Pourriez vous m'aider?
Merci d'avance.
A voir également:
- Shell Windows [Batch]
- Classic shell - Télécharger - Personnalisation
- Clé d'activation windows 10 - Guide
- Montage video windows - Guide
- Windows ne démarre pas - Guide
- Windows movie maker - Télécharger - Montage & Édition
4 réponses
Bon à force d'espérer j'ai fini par trouver la solution sans FOR :
@ECHO ON REM VARIABLES : SET YYYYMMDD=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% SET mois=%DATE:~3,2% SET jour=%DATE:~0,2% REM DEBUT : MKDIR %YYYYMMDD% REM ON DESCIDE DE GARDER 14j DE SAUVEGARDE SET /a jour-=14 REM DANS LE CAS OU ANCIENNE SAUV EST DANS LE MEME MOIS IF %jour% GEQ 1 GOTO OK REM SINON... SET /a mois-=1 IF "0%mois%"=="01" GOTO :MAX IF "0%mois%"=="02" GOTO :FEV IF "0%mois%"=="03" GOTO :MAX IF "0%mois%"=="04" GOTO :MIN IF "0%mois%"=="05" GOTO :MAX IF "0%mois%"=="06" GOTO :MIN IF "0%mois%"=="07" GOTO :MAX IF "0%mois%"=="08" GOTO :MAX IF "0%mois%"=="09" GOTO :MIN IF "0%mois%"=="10" GOTO :MAX IF "0%mois%"=="11" GOTO :MIN IF "0%mois%"=="12" GOTO :MAX REM SI MEME MOIS :OK SET nYYYYMMJJ=%DATE:~6,4%-%DATE:~3,2%-%jour% GOTO SUITE REM SI MOIS DE 31j :MAX SET njour=%jour% SET /a njour=31+%njour% SET nYYYYMMDD=%DATE:~6,4%-0%mois%-%njour% GOTO SUITE REM SI MOIS DE FEVRIER :FEV SET njour=%jour% SET /a njour=28+%njour% SET nYYYYMMDD=%DATE:~6,4%-0%mois%-%njour% GOTO SUITE REM SI MOIS DE 30j :MIN SET njour=%jour% SET /a njour=30+%njour% SET nYYYYMMDD=%DATE:~6,4%-0%mois%-%njour% GOTO SUITE REM SUPPRESSION ANCIENNE SAUVEGARDE :SUITE RD /s /q %nYYYYMMDD% GOTO FIN :FIN Bien sur cette version est perfectible puisqu'elle ne prend pas en compte actuellement, les années bissextile... Avis aux amateurs !