Création de sous dossier quotidien

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Création de sous dossier quotidien

Re: Création de sous dossier quotidien

Post by Paneb » 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: .

Re: Création de sous dossier quotidien

Post by garry » 05 Jan 2017, 12:35

2017, je ne sais pas pourquoi ( XP ) , je veux essayer avec Win-10 ...

Re: Création de sous dossier quotidien

Post by Paneb » 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 ?

Re: Création de sous dossier quotidien

Post by garry » 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 )

Création de sous dossier quotidien

Post by Paneb » 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:

Top