Trier des dossiers par date, en .bat [Résolu] - Autoit / batch

A voir également:Trier des dossiers par date, en .batDossier app data - Conseils pratiques - Windows Comment ouvrir un dossier winmail.dat - Conseils pratiques - Mozilla Thunderbird Trier mail gmail par date - Conseils pratiques - Gmail Ouvrir un dossier winmail.dat - Télécharger - Courrier électronique Thunderbird trier les dossiers manuellement ✓ - Forum - Thunderbird

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!

Forum

A voir également:Trier des dossiers par date, en .batDossier app data - Conseils pratiques - Windows Comment ouvrir un dossier winmail.dat - Conseils pratiques - Mozilla Thunderbird Trier mail gmail par date - Conseils pratiques - Gmail Ouvrir un dossier winmail.dat - Télécharger - Courrier électronique Thunderbird trier les dossiers manuellement ✓ - Forum - Thunderbird

Web: www.shapebootstrap.net

1 réponse

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

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.



“L'intelligence artificielle se définit comme le contraire de la bêtise naturelle.”

Reply
réponses:
  • auteur

    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 !!

  • auteur

    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 ! :)

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed