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

Trier des dossiers par date, en .bat Trier dossier par date de modification [Résolu] » Forum - Windows Ouvrir un fichier Winmail.dat » Conseils pratiques - Mozilla Thunderbird Renommer dossier avec un fichier .bat [Résolu] (Résolu) » Forum - Logiciels Créer des dossiers via un fichier .bat [Résolu] (Résolu) » Forum - Windows Batch pour lister nombre de fichiers dossier et date de création [Résolu] (Résolu) » Forum - Autoit / batch

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

Trier des dossiers par date, en .bat Trier dossier par date de modification [Résolu] » Forum - Windows Ouvrir un fichier Winmail.dat » Conseils pratiques - Mozilla Thunderbird Renommer dossier avec un fichier .bat [Résolu] (Résolu) » Forum - Logiciels Créer des dossiers via un fichier .bat [Résolu] (Résolu) » Forum - Windows Batch pour lister nombre de fichiers dossier et date de création [Résolu] (Résolu) » Forum - Autoit / batch

Web: www.shapebootstrap.net

3 réponses

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:
  • Silk7499

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

  • Silk7499

    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