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é windows 8 - 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 !