Table of Contents

Working with the Finder Selection

with the For Each Item Action using the Finder's Selection Collection

As you probably know, you can select multiple files and/or folders in the Mac Finder, and then perform a manual operation on the entire selection, like copy, move, delete, apply tags, etc. If you have an operation that you often perform, then Keyboard Maestro can most likely automate that for you.

Potential Use Cases

Some examples of Keyboard Maestro macros performing operations (actions) on a Finder Selection:

  1. Move the selected files to another folder you often use for a specific purpose
  2. Assigning Mac Tags to the selection (can't be done via AppleScript)
  3. Renaming the selected files using a consistent prefix and number scheme

Setup of the For Each Item Action

In Keyboard Maestro, you work with the Finder Selection by using the For Each action to iterate over the selected files. For each file in the selection, you can do whatever you would like with the file using the various file actions, including an Execute Script Action. Even if you are writing a macro to operate on only a single item, this is how you get that item.

In the For Each Item Action, you can add one or more of any of the Keyboard Maestro Actions. These Action(s) will be repeated for each file in the selection.

Examples

The Finder’s Selection collection sets the For Each Variable to the full path of each file in the selection.

Note the consistency between the first three examples. And note that you could do all three in a single For Each action if you wanted (you would have to ensure the Move was done last of course, as that will change the path to the file).

#1 - Move Selected Files

To move the files to the Documents folder, you would do this:

#2 - Assign Mac Tags to Selection

To change the Finder Tags, you would use:

#3 - Rename Selected Files

You could rename the selected files from .txt to .html like this:

#4. Pass the File Path to a Shell Script

You can pass each file to a shell script using something like this:

#5. Combining Multiple Actions in One For Each Item Action

This macro will take the selected items in the Finder and perform the following Actions:

  1. Get the original File Path
  2. Generate a new sequenced name using the specified Base File Name
    1. New File Name: BaseFileName-n.ext as in “My Base File Name-1.jpg
  3. Add a Mac Tag to the File
  4. Rename the file using the text in the baseFileName variable and adding a hyphen and a sequential number to it.

The file extension will be retained. (A folder or a file with NO file extension will end up with a '.' at the end of the item-name, but I'll fix that soon.)

See download link for this macro below.

Downloads

See Also

Actions

Collections

Tokens

Forum