Création de sous dossier quotidien

Partager vos scripts et fonctions intéressantes
Paneb
Posts: 54
Joined: 24 Aug 2015, 05:02
GitHub: PanebFR
Location: France

Création de sous dossier quotidien

05 Jan 2017, 04:31

Bonjour par ici ! :wave:

J'ai déployé un outil pour mon usage pro, donc je viens le partager ici sait-on jamais.
Il peut servir aux personnes qui classent de manière quotidienne certains fichiers ou mail. Le programme créera un dossier pour chaque jours du mois considéré (j'ai normalement fait en sorte que tous les cas soient bien pris en compte, notamment en piochant dans les fonctions mises en lignes LDOM :shh: ). J'ai considéré que le programme se trouve dans le dossier de tri. Les dossiers se nomment MM-DD-YYYY pour permettre leur classement sans problème par l'explorateur Windows.
Voici le résultat (avec un petit GUI pour choisir le mois, l'année, ou carrément créer une année entière) :

Code: Select all

#NoEnv
#Warn
#SingleInstance Force
SetWorkingDir %A_ScriptDir%
Gui Add, Text, , Création des dossiers quotidiens de tri
Gui Add, Edit, vChoixAnnee, Indiquer l'année.
Gui Add, Text, , Choisir le mois que vous voulez créer (il `n est possible de créer `n toutes une année) :
Gui Add, DropDownList, vChoixMois, Janvier|Février|Mars|Avril|Mai|Juin|Juillet|Août|Septembre|Octobre|Novembre|Décembre|Créer l'année
Gui Add, Text, , Dans le cas d'une création d'une année `n complète, l'ensemble des mois `n sera dans un sous dossier `n de l'année.
Gui Add, Text, , Pour la création d'un seul mois, le `n programme recherchera un dossier `n de l'année avant de se `n placer dans son dossier `n d'exécution si il ne le trouve pas.

Gui Add, Button, gCreation , Créer les dossiers
Gui Show, w200 h400, Création sous-dossier quotidien
Return

GuiEscape:
GuiClose:
    ExitApp

; End of the GUI section


Creation:
Gui, Submit
myDate := 1
if(ChoixMois = "Janvier")
	myMonth := 01
else if (ChoixMois = "Février")
	myMonth := 02
else if (ChoixMois = "Mars")
	myMonth := 03
else if (ChoixMois = "Avril")
	myMonth := 04
else if (ChoixMois = "Mai")
	myMonth := 05
else if (ChoixMois = "Juin")
	myMonth := 06
else if (ChoixMois = "Juillet")
	myMonth := 07
else if (ChoixMois = "Août")
	myMonth := 08
else if (ChoixMois = "Septembre")
	myMonth := 09
else if (ChoixMois = "Octobre")
	myMonth := 10
else if (ChoixMois = "Novembre")
	myMonth := 11
else if (ChoixMois = "Décembre")
	myMonth := 12
else if (ChoixMois = "Créer l'année")
	myMonth := 01
indice = 1	
myYear := ChoixAnnee

if myYear is not integer
{	
	MsgBox, L'année n'est pas un nombre !
	ExitApp
}
else if myYear is integer 
{
	timeStamp = ""
	timeStamp := myYear . myMonth
	datea := LDOM(timeStamp)
	;MsgBox, %timeStamp%
	;MsgBox, %datea%
	if(ChoixMois != "Créer l'année"){
		Loop
			{
				if (myDate > datea)
					break
				IfExist, %myYear%	
					FileCreateDir, %myYear%\%myMonth%_%myDate%_%myYear%
				IfNotExist, %myYear%	
					FileCreateDir, %myMonth%_%myDate%_%myYear%
				myDate++
			}
		}
		
	else{
		while(indice<13){
			Loop
			{
				if (myDate > datea)
					break
				FileCreateDir %myYear%	
				FileCreateDir, %myYear%\%myMonth%_%myDate%_%myYear%
				myDate++
			}
			myDate := 1
			indice++
			if(indice = 2)
				myMonth := 02
			else if(indice = 3)
				myMonth := 03
			else if(indice = 4)
				myMonth := 04
			else if(indice = 5)
				myMonth := 05
			else if(indice = 6)
				myMonth := 06
			else if(indice = 7)
				myMonth := 07
			else if(indice = 8)
				myMonth := 08
			else if(indice = 9)
				myMonth := 09
			else if(indice = 10)
				myMonth := 10
			else if(indice = 11)
				myMonth := 11
			else if(indice = 12)
				myMonth := 12
		}
	}
	
	ExitApp
}

LDOM(TimeStr="") {
  If TimeStr=
     TimeStr = %A_Now%
  StringLeft Date,TimeStr,6 ; YearMonth
  Date1 = %Date%
  Date1+= 31,D              ; A day in next month
  StringLeft Date1,Date1,6  ; YearNextmonth
  Date1-= %Date%,D          ; Difference in days
  Return Date1
}
Et bonne année ! : :superhappy:
garry
Posts: 1456
Joined: 22 Dec 2013, 12:50

Re: Création de sous dossier quotidien

05 Jan 2017, 10:55

merci Paneb , mais ..
quand je choisis " Créer l'année " , je reçois pour Février aussi 31 jours ( 12*31=372 Fichier )
Paneb
Posts: 54
Joined: 24 Aug 2015, 05:02
GitHub: PanebFR
Location: France

Re: Création de sous dossier quotidien

05 Jan 2017, 12:03

Merci pour le retour !
Alors j'avais bien pensé à regarder ce mois en particulier, chez moi je n'ai pas le problème : je m'arrête bien à 28 pour 2017 (seulement 365 dossiers : 7*31 + 4*30 + 28 = 365).
Idem 2018.
Et si j'utilise l'an 2000 (bissextile car 400*5) j'ai bien 366 dossiers.
Le problème est sur quelle année ?
garry
Posts: 1456
Joined: 22 Dec 2013, 12:50

Re: Création de sous dossier quotidien

05 Jan 2017, 12:35

2017, je ne sais pas pourquoi ( XP ) , je veux essayer avec Win-10 ...
Paneb
Posts: 54
Joined: 24 Aug 2015, 05:02
GitHub: PanebFR
Location: France

Re: Création de sous dossier quotidien

06 Jan 2017, 04:40

Ah je veux bien le retour sur Windows 10 aussi !
Je l'ai testé seulement sur W7 (ce que j'ai au bureau).
Après le problème est surprenant car il n'y a pas d'appel à des lib systèmes :think: .

Return to “Scripts et Fonctions”

Who is online

Users browsing this forum: No registered users and 1 guest