Si vous vraiment vous voulez tout faire en AppleScript, alors vous devriez essayer :
to date_format(old_date) -- Old_date is text, not a date.
set {year:y, month:m, day:d} to date old_date
tell (y * 10000 + m * 100 + d) as string to text 1 thru 4 & "-" & text 5 thru 6 & "-" & text 7 thru 8
end date_format
to time_format(old_time)
set {hours:h, minutes:m, seconds:s} to date old_time
set pre to "AM"
if (h > 12) then
set h to (h - 12)
set pre to "PM"
end if
return (h & "." & m & "." & s & " " & pre) as string
end time_format
set theDate to (current date)
set dateFormatted to date_format(date string of (theDate))
set timeFormatted to time_format(time string of (theDate))
set filename to "screen_shot " & dateFormatted & " at " & timeFormatted & ".jpg"
Note : En ce qui concerne AM/PM : Je n'ai pas essayé le soir, mais cela devrait fonctionner.
Ce serait beaucoup plus facile Toutefois, pour utiliser do shell script
pour cela, par exemple :
set formattedDate to (do shell script "date +'%Y-%m-%d at %H.%M.%S %p'")
set filename to "screen_shot " & formattedDate & ".jpg"
ou même en une seule étape en utilisant :
do shell script "screencapture \"/Users/yourusername/Desktop/screencapture/screen_shot $(date +'%Y-%m-%d at %H.%M.%S %p').jpg\" "
Veillez à remplacer username
avec votre nom d'utilisateur réel, et aussi que le dossier screencapture
existe. En résumé, cela se traduit par :
set i to 0
repeat 960 times
do shell script "screencapture \"/Users/yourusername/Desktop/screencapture/screen_shot $(date +'%Y-%m-%d at %H.%M.%S %p').jpg\" "
delay 5 -- Wait for 5 seconds.
set i to i + 1
end repeat
Notez qu'il est important de placer correctement le nom du fichier entre guillemets doubles, qui doit ensuite être échappé dans AppleScript par une barre oblique inverse : \"