Trier des dossiers par date, en .bat

Résolu/Fermé
Silk7499 Messages postés 4 Date d'inscription jeudi 14 juin 2018 Statut Membre Dernière intervention 21 juin 2018 - 14 juin 2018 à 09:42
Silk7499 Messages postés 4 Date d'inscription jeudi 14 juin 2018 Statut Membre Dernière intervention 21 juin 2018 - 15 juin 2018 à 10:47
Bonjour,

J'ai un dossier qui se créé chaque jour automatiquement (qui porte comme nom, la date du jour auquel il a été créé sous cette forme, pour le 14 juin 2018 : 14.06.2018) et qui contient des dossiers et des sauvegardes.
Jusqu'ici tout va bien, et je me retrouve donc, avec 365 dossiers à la fin de l'année dans mon répertoire principal C:\FTP (comme il y a 365 jours.)

Je souhaiterai créer un script en .Bat, pour que, chaque mois suivant les 30 ou 31 dossiers du mois précédents, (Par exemple, dès qu'on passe en juillet (mois numéro 7) et seulement à ce moment, tout les dossiers portant la date du mois de juin (mois numéro 6) soient redirigés dans un dossier qui se nomme 06-2018.

Et j'y arrive vraiment pas j'ai essayé avec les token ou les delim, mais a chaque fois il y a un problème..
Si vous pourriez m'aider, ce serait vraiment super..!

Merci d'avance!
A voir également:

1 réponse

barnabe0057 Messages postés 14454 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 30 novembre 2024 4 918
Modifié le 14 juin 2018 à 21:47
Bonjour,

Dis-moi si ça te convient :

@echo off
setlocal enableextensions enabledelayedexpansion
chcp 1252 >nul

set Dossier=C:\FTP

cd /d %Dossier% || exit /b 1

set today=%date:~0,2%
set mois=%date:~3,2%

set /a precedent=!mois!-1
set precedent=0!precedent!
set precedent=!precedent:~-2!

if !today! EQU 01 (call :deplacement)

echo. & pause
exit /b 0

:deplacement
for /f "tokens=1-3 delims=." %%A in ('dir /b /ad') do (
set destination=!precedent!-%%C\%%A.%%B.%%C
if "%%B"=="!precedent!" (
echo. & echo ### %%A.%%B.%%C ==^>^> !precedent!-%%C
if not exist "!destination!" (mkdir "!destination!")
>nul robocopy "%%A.%%B.%%C" "!destination!" /E /DCOPY:T /SEC /MOVE)
)
goto :eof

rem

Si tu as des questions n'hésite pas.

ps : la semaine je ne suis disponible qu'en soirée.


0
Silk7499 Messages postés 4 Date d'inscription jeudi 14 juin 2018 Statut Membre Dernière intervention 21 juin 2018
15 juin 2018 à 09:24
Bonjour,

Dans un premier temps, merci beaucoup, ton script fait bien ce que je voulais et c'est top !

Mais j'ai constaté qu'il n'écrasait pas les fichiers quand il les déplaçait, par exemple, si je lance le script le 30/06/2018 a 8h, il va mettre le dossier et tout, dans le dossier créé, et si je le relance le même jour à 14h, il va les ajouter, ce qui est bien, puisque moi, quand j'avais tenté de créer un truc, il les écrasait systématiquement, c'est pour ça que j'ai choisi un raisonnement assez compliqué...

Du coup, à mon niveau, la complexité de ton programme est assez élevée pour moi :/ Mais pourrais-tu le modifier afin que je puisse le lancer n'importe quand, et pas seulement le 30 / 31 ? Comme finalement il fonctionne tout aussi bien chaque jour de la semaine ?

Je te remercie d'avance pour ta réponse, et merci encore pour le programme déjà fourni !!
0
Silk7499 Messages postés 4 Date d'inscription jeudi 14 juin 2018 Statut Membre Dernière intervention 21 juin 2018
15 juin 2018 à 10:47
J'ai finalement trouvé réponse à mon problème tout seul après m'être plongé dans le programme, et en ayant éclairci les grandes lignes ! C'était pas compliqué ce que je t'ai demandé dans le second temps ;) C'est tout bon pour moi, merci infiniment ! :)
0