Jump to content

Rename 4.0 beta 2 for Alfred 3: Batch Rename files or folders (supports Regular Expression and EXIF date)


Recommended Posts

Posted (edited)

Overview

  • Rename a file or a folder selected in Finder or in Alfred
  • Batch rename files or folders using Regular Expression
  • Add additional steps such as find and replace, remove space, remove diacriticals, capitalize, add current date, file modified date, custom number sequence, EXIF original date etc.
  • Quick look to preview all the new names
  • Recent Expressions
  • Presets, including default ones ready to be used

Triggering

  • keywords ren or regex - main workflow keyword
  • keywords ren? or regex? - read about the workflow
  • Hotkey - show Alfred with the keyword ren
  • Hotkey - use the last expression with no interaction
  • File Action - rename files or folders selected in Alfred file browser

How to Use

Rename Only

You can use the workflow to rename a single file without using a regular expression, like in Finder:

  • Select a single file in the Finder (or in Alfred file browser)
  • Type the keyword ren
  • Type the new filename e.g. new name.txt

You can optionally use modifiers and filename additions (see below).

Rename with Regular Expression

Here is a command line with all features, including the optional ones, as explained below:
 

regular expression@new filename $d-$m-$y ###[1]{find@@replace}{-modifiers}

Step by step:

(1) Type the regular expression to group elements of the previous filename:

^([ˆ ]+) (.*)\.(.*)

The workflow will group using $1, $2, $3 and so on. Later you can use them to build a new filename.

(2) When the regular expression is finished type then an at sign at the end:

^([ˆ ]+) (.*)\.(.*)@

(3) After the at sign type the new filename (here you can use the groups formed in the first step):

^([ˆ ]+) (.*)\.(.*)@$1.$3

(4) Optionally add current date or any other filename constants (read below about them):

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y.$3

(5) Optionally add a custom sequence of numbers e.g. with two leading zeros starting at one (read how to build a custom sequence below):

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3

(6) Optionally find and replace characters in the original filename utilizing the syntax {find@@replace}:

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3{_@@-}

(7) Optionally utilize one of the modifiers (read about them below) to e.g. set all letters to lowercase:

^([ˆ ]+) (.*)\.(.*)@$1 $d-$m-$y ##[1].$3{_@@-}{-l}

Note that it is important to keep the modifiers at the very end of the command and enclosed by {}, using or not find and replace.

If all you need is a simple find and replace you can use the following simplified command:

find@@replace{-modifiers}

Whether using the regular expression or only the simple find and replace you can always preview the new filenames pressing SHIFT key:

rename3_2.png

Modifiers

  • -d to remove diacriticals
  • -s to remove space
  • -c to Capitalize Name
  • -t to Title name
  • -u to UPPERCASE
  • -l to lowercase
  • -_ to replace underscore to space
  • -b to replace space to underscore

Use one or more at the very end of the command enclosed by {}, for example:

(.*)\.(.*)@$1.$2{-s-u}
-@@_{-u}

New Filename Constants

You can add the following constants to the new filename:

Current Date

  • $d = day e.g. 02
  • $m = month e.g. 04
  • $mm = month e.g. April
  • $y = year e.g. 2013
  • $h = hour e.g. 02
  • $n = minutes e.g. 54
  • $s = seconds e.g. 30

Date Created

  • $cd = day e.g. 02
  • $cm = month e.g. 04
  • $cmm = month e.g. April
  • $cy = year e.g. 2013
  • $ch = hour e.g. 02
  • $cn = minutes e.g. 54
  • $cs = seconds e.g. 30

Date Modified

  • $mod = day e.g. 02
  • $mom = month e.g. 04
  • $momm = month e.g. April
  • $moy = year e.g. 2013
  • $moh = hour e.g. 02
  • $mon = minutes e.g. 54
  • $mos = seconds e.g. 30

EXIF Original Date

This is the date and time when the image was originally captured by the camera.

  • $ed = day e.g. 02
  • $em = month e.g. 04
  • $emm = month e.g. April
  • $ey = year e.g. 2013
  • $eh = hour e.g. 02
  • $en = minutes e.g. 54
  • $es = seconds e.g. 30

Image Dimensions

  • $iw = width in pixels
  • $ih = height in pixels

Sequence

You can add a number sequence to the new filename by utilizing # (each one represents a leading zero) followed by the start number enclosed in brackets e.g. ###[1] which means 3 leading zeros starting at 1.

Create New Folder and Move Files

You can also use the regular expression to create a new folder and move the file(s) there.

Utilize a forward slash ("/") before the new name:

 

(.*)@$m-$y/file.png

A new folder will be created based on current month ($m) and year ($y) and the file will be renamed and moved to there.

Recent Expressions and Presets

To make things faster the workflow:

  • Display the last used expression
  • In Recent Expressions there are a list of the last 40 used expressions; note that you can alo use a shortcut to access them: just type a single at sign (@)
  • In Presets there are some ready to use expressions a long with the user favorites ones; note that you can alo use a shortcut to access them: just type a single hash sign (#)

rename3.png

The workflow saves the last used regular expression in the main workflow menu, a list of recent regular expressions and a list of Presets.

To add a Recent expression to Presets just type a plus symbol followed by the preset name: +For My Videos

While in Presets just type a minus symbol “-“ to remove from Presets.

 

Download Version 4.0 beta 2

A new beta of the workflow that fixes some Mac OSX High Sierra bugs I have found.

 

Please note: Use it with caution. Make some tests first. Backup your files before using the workflow.

 

  • Release date 19 Feb 2018
  • OSX 10.13.3
  • Alfred 3
  • Download Now



Download Version 4.0 beta 1

  • Release date 09 Jun 2016
  • OSX 10.11.5
  • Alfred 3
  • Download Now

 

Rename for Alfred 2

  • Release date 25 Aug 2014
  • OSX 10.9.2
  • Alfred 2.4 or later is required
  • Download Now

What's new?

  • 4.0 Alfred 3 support
  • 3.2 Yosemite support
  • Changed workflow name to only Rename
  • EXIF Original Date (to use as a filename constant)
  • Up to 10 times faster to process and even faster to rename
  • Included the keyword ren as an alternative to the regex
  • Recent Expressions shortcut: type a single @
  • Presets shortcut: type a single #
  • New Picture Preset
  • Improved Last Used feature
  • UI refinements, including new icons
  • New Help
  • Filename case procedure improved
  • Fixed second leading zero constant

Workflow version history here.

Edited by Carlos-Sz
Posted

great !

 

wanted to  write a similar thing, but starting with alfreds multi-file selection, but it would have lacked a way to enter a regex in the next step

Posted

This is great!!!

 

 

great !

 

wanted to  write a similar thing, but starting with alfreds multi-file selection, but it would have lacked a way to enter a regex in the next step

 

 

So much for NameMangler. This is much easier and faster for me!

 

 

Using regex is so nice.

 

Great! While handling some files within Finder Alfred is much faster to use indeed.

Posted

I am typing almost the same expression several times. Maybe add a bookmarking/history function to reuse past regexp strings. That would be great. But, I know more PHP than Applescript.

Posted

I am typing almost the same expression several times. Maybe add a bookmarking/history function to reuse past regexp strings. That would be great. But, I know more PHP than Applescript.

 

Great idea. I’ll add the feature. Thanks.

Posted

I am typing almost the same expression several times. Maybe add a bookmarking/history function to reuse past regexp strings. That would be great. But, I know more PHP than Applescript.

 

And here is a new version with a History of regular expressions used: link

Posted

And here is a new version with a History of regular expressions used: link

Perfect!!! Thanks a lot. This is now my only way to rename files. 

 

Question: Is it going to record all sessions? It might be good to have a way to edit them or mark some as favorites that are shown at the top. Sorry, I love to brain storm! It's the engineer in me.

Posted

Perfect!!! Thanks a lot. This is now my only way to rename files. 

 

Question: Is it going to record all sessions? It might be good to have a way to edit them or mark some as favorites that are shown at the top. Sorry, I love to brain storm! It's the engineer in me.

 

RIght now it will record everything but there are two things I’m considering: limit to 50 entries and/or a Favorite system.

 

By the way, I’m already testing Alfred File Action. :)

Posted (edited)

One more thing is coming: the recent regular expression list is part of the main workflow interface with a drill-down alike menu interface. Something like this:

 

regex_rec2.png

Edited by Carlos-Sz
Posted (edited)

Version 0.94 beta is out:

  • Alfred File Action
  • Improved and easy to use Recent Regular Expressions list
  • Hotkey to be used after selecting files or folders in Finder

 

Favorite Expressions coming soon:

 

regex_fav.png

Edited by Carlos-Sz
Posted (edited)

Hi, lovely plugin. I am however facing a problem

I have a folder called "foo". Inside it I have a whole bunch of jpg files. I am trying to rename them to png (just for testing)

 

I selected the files, invoked alfred and typed

regex (.*).jpg@$1.png

 

 the preview showed perfectly but it keeps saying "can't yet rename files" - the only way I can get it to work is to not put any characters after .* like 

regex (.*)@$1.png

- which will make it .jpg.png - not what I want.

 

Any ideas?

Edited by arjunrc
Posted (edited)

Hi, lovely plugin. I am however facing a problem

I have a folder called "foo". Inside it I have a whole bunch of jpg files. I am trying to rename them to png (just for testing)

 

I selected the files, invoked alfred and typed

 

 the preview showed perfectly but it keeps saying "can't yet rename files" - the only way I can get it to work is to not put any characters after .* like 

- which will make it .jpg.png - not what I want.

 

Any ideas?

 

 

Right now the workflow tries to check if the extension matches* to avoid an user mistake such as wrong extension or no extension at all.
 
One problem I thought about: if the user wants .jpg instead of .jpeg or .txt instead of .md. Maybe a command such as $x[.png] to force the new extension.
 
However, I think the default behavior is safer.
 
There is a solution though and I will implement in one way or another.
 
Thank you for your feedback! 
 
* this checking need to be improved as you example showed.
Edited by Carlos-Sz
Posted (edited)

Carlos, thank you  for your note - given that this is a regex renamer, I think it would be better to take off this limitation (novice users will likely not use a regex in the first place). I took a look at regex_01.scpt - I removed the following check

 or _New_P does not end with theExt

and it seems to be doing exactly what I want 

 

Thanks!

 

PS: The preview function is excellent !

Edited by arjunrc
Posted

Carlos, thank you  for your note - given that this is a regex renamer, I think it would be better to take off this limitation (novice users will likely not use a regex in the first place). I took a look at regex_01.scpt - I removed the following check

and it seems to be doing exactly what I want 

 

Thanks!

 

PS: The preview function is excellent !

 

 

Great!
 
Maybe you're right about the extension.
 
Anyway, a file without an extension at all could trigger some alert though… :)
  • 2 weeks later...
Posted

News about the workflow

 

  • The next update will require the latest version of Alfred that is still in pre-release (2.0.3) due the new backslash escaping feature (right now typing a single backslash will bring Alfred fallback search).
  • Favorites are ready
  • file type icon will be displayed to help identify what you are renaming
  • the workflow will not require an extension but it will let you know that is missing or a different one was set
  • improved quick look: you can access quick look as soon as you start the workflow so you can easily check the files to be renamed; in addition, warnings are also displayed in red

 

re_1_01.png

 

In resume, update Alfred if you’d like to get the new version of the workflow that should be ready in one or two days.

Posted

Is there any way to rename files to a websafe format with regex?

 

I think there is. 

 

However, the regular expression in this workflow is set to group and not find and replace.

 

Anyway, I’ll see if I can add something to remove diacriticals and white space to make the filename web safe.

 

Thank you for your feedback!

Posted

Is there any way to rename files to a websafe format with regex?

 

OK. The next version will also support regular expression with find and replace allowing you to e.g. remove white spaces.

 

In addition, it will also have a command to remove diacriticals so you can clean not English names too such as café to cafe.

 

​Finally, I’ll add some presets so you can easily use the workflow for some basic and kind of common renaming tasks. 

 

I still have some things to test but I’ll post a new version soon.

Posted

Version 1.0 is out:


  • Find and Replace with Regular Expression support
  • Additional steps (remove space, remove diacriticals, capitalize etc.)
  • Improved Recent Expressions
  • Presets including default ones (ready to be used)
  • Quick look (SHIFT key) available at any time
  • Improved Quick Look layout
  • Warnings such as different extension or no extension at all (Alfred and Quick Look)
  • Check for eventual duplicated names
  • File type icon displayed to quickly help identify what you are renaming
  • Help keyword: regex?

Note: requires Alfred 2.0.3 (187)


 


See initial post for details.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...