# Automator, rechercher les fichiers par Date et heure de créa



## red455 (21 Novembre 2014)

Bonjour à tous;

Je galère un peu. J'ai placé une GoPro pour suivre l'évolution d'un gros chantier. La GoPro prend une photo toute les minutes (elle est sur alimentation secteur et je vais relever la carte 1x par semaine). 

Je me retrouve très vite avec des milliers de photos car la GoPro tourne 24h/24. 

J'aimerais faire une script ou une action de dossiers qui me nettoierait le dossier en supprimant toutes les photos prises entre 00h00 et 7h00 (Avant le début de la journée du chantier) ainsi que les photos prises entre 17h00 et 23h59 (Après la journée de chantier). 


Dans automator on peut trier les fichiers par date de création mais pas moyen d'être plus précis. 

Pensez vous que ce soit réalisable ?

Merci pour votre aide


----------



## pascalformac (21 Novembre 2014)

tu dois pouvoir assez facilement trouver des scripts( Applescript ou automator ou mix)  qui prennent les critères date plus "fins" ( heures minutes secondes)

juste faire gaffe à la date... du script   , car quelques syntaxes ont légèrement évolué avec les derniers OS
ceci dit ca se corrige en remplacant l'ancienne syntaxe par la nouvelle


----------



## JacqR (21 Novembre 2014)

Bonjour,

Bonjour,

Voici un script AppleScript qui fait cela (il suffit de l'exécuter une fois par jour):

```
set d1 to current date
copy d1 to d2
tell d1
	set time to 61200 -- 17 heures aujourd'hui
	set day to day - 1 -- 17 heures mais hier
end tell
set time of d2 to 25200 --  7 heures  aujourd'hui

set f to (choose folder)
tell application "System Events" -- supprime les fichiers dont la date est plus grande que hier 17 heures et est plus petit que aujourd'hui 7 heures.
	delete (files of f whose its creation date > d1 and its creation date < d2)
end tell
```


Un exemple avec un chemin de dossier en dur au lieu de choisir le dossier dans un dialogue.

```
set f to "/Users/jack/Desktop/dossier sans titre 6/"
tell application "System Events" -- supprime les fichiers dont la date est plus grand que hier 17 heures et  est plus petit que aujourd'hui 7 heures
	delete (files of folder f whose its creation date > d1 and its creation date < d2)
end tell
```


----------



## pascalformac (21 Novembre 2014)

joli ce script JacqR
-
tiens d'ailleurs ca me permet de montrer pourquoi certains "anciens" scripts ne marchent pas sur OS récents (et sont à réadapter)
un exemple pris au dessus de syntaxe qui a changé :
  le terme "System Events"


----------



## red455 (24 Novembre 2014)

JacqR a dit:


> Bonjour,
> 
> Bonjour,
> 
> ...




Merci pour le script, je fais les essais aujourd'hui et renviendrai vers vous rapidement.

---------- Nouveau message ajouté à 09h08 ---------- Le message précédent a été envoyé à 08h57 ----------




pascalformac a dit:


> joli ce script JacqR
> -
> tiens d'ailleurs ca me permet de montrer pourquoi certains "anciens" scripts ne marchent pas sur OS récents (et sont à réadapter)
> un exemple pris au dessus de syntaxe qui a changé :
> le terme "System Events"



Salut =pascalformac quand tu dis as changé, elle est bonne comme dans le script ci dessus ?

---------- Nouveau message ajouté à 09h22 ---------- Le message précédent a été envoyé à 09h08 ----------

Salut  à tous;

Je viens de tester mais je dois appliquer ce script à des fichiers qui ont déjà plusieurs jours. 

Est il possible qu'au même titre que le choose folder on puisse choisir la date "IN" et la date "OUT" ?


Merci pour votre aide.


----------



## JacqR (24 Novembre 2014)

Bonjour,



red455 a dit:


> Je viens de tester mais je dois appliquer ce script à des fichiers qui ont déjà plusieurs jours.
> Merci pour votre aide.



Voici le script qui supprime les fichiers selon le temps de la date de création, pas sur la journée


```
set f to (choose folder)
tell application "System Events" -- supprime les fichiers dont l'heure de la date de création est plus grande que 17 heures ou l'heure de la date de création est plus petit que 7 heures.
	set tc to number of files in folder (f as string)
	repeat with i from tc to 1 by -1
		tell (get file i in f)
			set tTime to time of (get creation date)
			if tTime > 61200 or tTime < 25200 then delete
		end tell
	end repeat
end tell
```


----------



## red455 (1 Décembre 2014)

Merci JacqR ca fonctionne parfaitement


----------

