Compteur année mois jours batch

Compteur année mois jours batch - Shell/Batch - Programmation

Marsh Posté le 19-12-2016 à 19:35:00    

Bonjour,  
Je voudrais réaliser un programme batch qui me permet de créer des dierctory lies à l'année, le mois, et enfin le jour.
J'ai réalisé cela mais les 9 premiers jours s'affichent en un seul chiffre : 2 Janvier 2017, 3 Janvier 2017 etc.. 10 Janvier 2017.
pour le triage cela n'est pas le top, j'ai essayé avec plusieurs méthodes d'avoir 01 janvier 2017, 02janvier 2017 etc. sans parvenir à insérer le 0 devant.
voici ce que j'ai fait pour tous les mois.
Cela fonctionne mais je n'arrive pas à dépasser le 08 puis il recommence à 01,02,03.... et cela à l'infini.
 
Es que quelqu’un a une solution ?  
Cela m’aiderais beaucoup.
 
Merci d'avance
 
@echo off
echo #############################################################################
echo #                                                                           #
echo # Bienvenue dans le script de creation de dossier journalier/mensuel/annuel #
echo #                                                                           #
echo #############################################################################
 
set /P PATH="Dans quel repertoire faut il creer les dossier? (Exemple : C:\TEST) "
set /P anneedebut="Quelle est la premiere annee a creer? "
set /P anneefin="Jusqu a quelle annee faut il creer? "
set /A annee=anneedebut
 
:boucle_annee
 
:janvier
SET JOUR=1
SET MOISCOURRIER="01 Janvier "%ANNEE%
SET MOIS="Janvier"
 
:boucle_janvier
 
IF "%JOUR%"=="32" GOTO fevrier
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR%"-"%ANNEE%
SET /A JOUR=JOUR+1
SET JOUR=0%JOUR%
IF "%JOUR%"=="010" GOTO boucle_jour2c
GOTO boucle_janvier
 
:boucle_jour2c
 
echo boucle_jour2c
SET /A JOUR=10
GOTO boucle_janvier
 

Reply

Marsh Posté le 19-12-2016 à 19:35:00   

Reply

Marsh Posté le 21-12-2016 à 23:03:01    

Hello, je n'ai pas la capacité à te donner une solution fiable mais peut être des idée pour contourner ton problème.
 
Pourquoi n'utilise-tu pas une boucle avec un compteur qui est incrémenté avec une condition type, j'imagine que ça doit se faire :  
if %jours% < 10 :
%joursInf10% = 0+%jours%
mkdir [...%joursInf10%]
%jours% = %jours% +1
else  
mkdir [...%jours%]
%jours% = %jours%+1
 
Quelques chose du genre doit pouvoir se faire.
L'idée est de passer par une autre variable que tu formate avec un 0 devant tant que ta valeur jours est inférieur à 10.
Une fois que tu as passé 10, tu peux passer sur un cycle de création normal.


Message édité par lolight le 21-12-2016 à 23:36:33

---------------
--- Mon topik d'Ach/Ven ---
Reply

Marsh Posté le 23-12-2016 à 12:23:52    

Salut,

 

Je sais pas au juste quels dossiers tu veux créer mais c'est un test de ce genre là qu'il faut:
if %jour% lss 10 (set jour2=0%jour%) else set jour2=%jour%

 

et ensuite tu fais les dossiers
mkdir %JOUR2%_%MOIS%_%ANNEE%


Message édité par aldo13000 le 23-12-2016 à 12:24:14

---------------

Reply

Marsh Posté le 24-12-2016 à 01:17:18    

Merci, pour vos solutions, ça fonctionne.
 
Voilà plusieurs jours que je tournais en rond.
Ce petit Batch me sert à classer le scan de tout document entrant, il est ainsi classé par année, par mois, et par jour d'entré de telle sorte que quand recherche un document, je sais directement ou il se trouve, quand il est arrivée  
Si cela intéresse qulqn voici le programme complet
@echo off
Color 3E
echo #############################################################################
echo #                                                                           #
echo # Bienvenue dans le script de creation de dossier journalier/mensuel/annuel #
echo #                                                                           #
echo #############################################################################
 
set /P PATH="Dans quel repertoire faut il creer les dossier ? (Exemple : C:\Annee_Courrier) "
set /P anneedebut="Quelle est la premiere annee a creer ? "
set /P anneefin="Jusqu a quelle annee faut il creer ? "
set /A annee=anneedebut
 
:boucle_annee
echo Creation en cour Annee %ANNEE%
Echo #
Echo #                        
 
:janvier
SET JOUR=1
SET MOISCOURRIER="01 Janvier "%ANNEE%
SET MOIS="Janvier"
Echo Mois %Mois%
 
:boucle_janvier
IF "%JOUR%"=="32" GOTO fevrier
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_janvier
 
:fevrier
SET JOUR=1
SET MOISCOURRIER="02 Fevrier "%ANNEE%
SET MOIS="Fevrier"
Echo Mois %Mois%
 
:boucle_fevrier
IF "%JOUR%"=="30" GOTO mars
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_fevrier
 
:mars
SET JOUR=1
SET MOISCOURRIER="03 Mars "%ANNEE%
SET MOIS="Mars"
Echo Mois %Mois%
 
:boucle_mars
IF "%JOUR%"=="32" GOTO avril
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+01
GOTO boucle_mars
 
:avril
SET JOUR=1
SET MOISCOURRIER="04 Avril "%ANNEE%
SET MOIS="Avril"
Echo Mois %Mois%
 
:boucle_avril
IF "%JOUR%"=="31" GOTO mai
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_avril
 
:mai
SET JOUR=1
SET MOISCOURRIER="05 Mai "%ANNEE%
SET MOIS="Mai"
Echo Mois %Mois%
 
:boucle_mai
IF "%JOUR%"=="32" GOTO juin
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+01
GOTO boucle_mai
 
:juin
SET JOUR=1
SET MOISCOURRIER="06 Juin "%ANNEE%
SET MOIS="Juin"
Echo Mois %Mois%
 
:boucle_juin
IF "%JOUR%"=="31" GOTO juillet
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_juin
 
:juillet
SET JOUR=1
SET MOISCOURRIER="07 Juillet "%ANNEE%
SET MOIS="Juillet"
Echo Mois %Mois%
 
:boucle_juillet
IF "%JOUR%"=="32" GOTO aout
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_juillet
 
:aout
SET JOUR=1
SET MOISCOURRIER="08 Aout "%ANNEE%
SET MOIS="Aout"
Echo Mois %Mois%
 
:boucle_aout
IF "%JOUR%"=="32" GOTO septembre
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_aout
 
:septembre
SET JOUR=1
SET MOISCOURRIER="09 Septembre "%ANNEE%
SET MOIS="Septembre"
Echo Mois %Mois%
 
:boucle_septembre
IF "%JOUR%"=="31" GOTO octobre
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_septembre
 
:octobre
SET JOUR=1
SET MOISCOURRIER="10 Octobre "%ANNEE%
SET MOIS="Octobre"
Echo Mois %Mois%
 
:boucle_octobre
IF "%JOUR%"=="32" GOTO novembre
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_octobre
 
:novembre
SET JOUR=1
SET MOISCOURRIER="11 Novembre "%ANNEE%
SET MOIS="Novembre"
Echo Mois %Mois%
 
:boucle_novembre
IF "%JOUR%"=="31" GOTO decembre
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_novembre
 
:decembre
SET JOUR=1
SET MOIScourrier="12 Decembre "%ANNEE%
SET MOIS="Decembre"
Echo Mois %Mois%
 
:boucle_decembre
IF "%JOUR%"=="32" GOTO sortie
if %JOUR% lss 10 (set JOUR2=0%JOUR%) else (set JOUR2=%JOUR%)
mkdir %PATH%\%ANNEE%\%MOISCOURRIER%\%MOIS%" "%JOUR2%"-"%ANNEE%
SET /A JOUR=JOUR+1
GOTO boucle_decembre
 
:sortie
 
IF %anneefin%==%annee% GOTO end
SET /A annee=annee+1
GOTO boucle_annee
 
:end
pause

Reply

Marsh Posté le 01-01-2017 à 13:53:10    

faudrait penser à faire du powershell, ce serait réglé en une ligne :/

Reply

Sujets relatifs:

Leave a Replay

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