Prepending creation date to selected files using AppleScript (macOS)
I try to name all of my files using the file’s creation date as a prefix. For example:
20230504-MyNewFile.txt
If I forget, it’s a pain to rename them, so I created a short AppleScript to do it for me.
-- Prepend Creation Date to selected files
-- Install Location: ~/Library/Scripts/Applications/Finder
-- Last Modified: 2023-05-04
tell application "Finder"
set selectedItems to selection as list
-- Loop through each selected item
repeat with selectedItem in selectedItems
set creationDate to creation date of selectedItem
set fileName to name of selectedItem
-- Prepend the creation date to the file name
set newName to my stringFromDate(creationDate) & "-" & fileName
-- Rename the file with the new name
set name of selectedItem to newName
end repeat
end tell
on stringFromDate(_date)
-- yyyymmddhhmmss
set _string to ""
set _string to _string & my stringFromNumber(_date's year, 4)
set _string to _string & my stringFromNumber(_date's month as integer, 2)
set _string to _string & my stringFromNumber(_date's day, 2)
return _string
end stringFromDate
on stringFromNumber(_number, _digitsToPad)
return text -_digitsToPad through -1 of ("0000" & _number)
end stringFromNumber
I put the script into a Finder-specific folder, so it’s made easily available when Finder is the frontmost app: ~/Library/Scripts/Applications/Finder
. (I use FastScripts to make things, er, faster).
I’ve also created a version for use via Raycast, which is identical but not “compiled”, as that seems to break things in Raycast.