Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Simple AppleScript to easily batch rename multiple files sequentially. GUI asks user to select files and input a name before renaming.
-- This code comes from https://gist.github.com/oliveratgithub/
-- Open in AppleScript Editor and save as Application
-- ------------------------------------------------------------
--this is required to break the filename into pieces (separate name and extension)
set text item delimiters to "."
tell application "Finder"
set all_files to every item of (choose file with prompt "Choose the Files you'd like to rename:" with multiple selections allowed) as list
display dialog "New file name:" default answer ""
set new_name to text returned of result
--now we start looping through all selected files. 'index' is our counter that we initially set to 1 and then count up with every file.
--the 'index' number is of course required for the sequential renaming of our files!
repeat with index from 1 to the count of all_files
--using our index, we select the appropriate file from our list
set this_file to item index of all_files
set file_name_count to text items of (get name of this_file)
--if the index number is lower than 10, we will add a preceding "0" for a proper filename sorting later
if index is less than 10 then
set index_prefix to "0"
else
set index_prefix to ""
end if
--
--lets check if the current file from our list (based on index-number) has even any file-extension
if number of file_name_count is 1 then
--file_name-count = 1 means, we extracted only 1 text-string from the full file name. So there is no file-extension present.
set file_extension to ""
else
--yup, we are currently processing a file that has a file-extension
--we have to re-add the original file-extension after changing the name of the file!
set file_extension to "." & item -1 of file_name_count
end if
--let's rename our file, add the sequential number from 'index' and add the file-extension to it
set the name of this_file to new_name & index_prefix & index & file_extension as string
end repeat
--congratulations for successfully accomplishing the batch renaming task :)
display alert "All done! Renamed " & index & " files with '" & new_name & "' for you. Have a great day! :)"
end tell
Owner

oliveratgithub commented Aug 18, 2015

Update August 18, 2015: the script will now add a preceding "0" to the index-number as long as the number is lower than 10 - this helps a better file name sorting in the filesystem(s) later. I.E. using "01", "02",..."10" etc. instead of "1", "2",..."10".

sybon commented Mar 26, 2016

Dear Oliver,
Thank you for your script !
I was really happy to get such a flexible tool to bulk rename my files !

Have a nice day,

Best regards,

Sylvain

Thanks so much for this script! It has helped me immensely! By any chance, is there a way to extrapolate a before-and-after text file that's saved to the desktop, so that a user can reference the new file names to the old?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment