This is information I originally posted back in 2009, but here we are 6 macOS versions later and it’s still relevant – and people are still asking for it.
Below are details on how to create a “Move Items” contextual menu item in the Services menu in the Finder (see the picture below).
It pops up a file dialog to let you specify where you want to move the selected items, which then allows you to use Default Folder X, giving you access to all of your Favorite and Recent folders, Finder-click, etc.
TL;DR: If you just want to get things to work, there’s a link at the bottom to download an already-built Automator workflow.
Contextual menu items are added by making a Workflow in Automator and saving it as a Service. You start by running the Automator application (it’s in your /Applications folder), creating a new Workflow, and setting it up as shown in the (old) screenshots below:
If you’re experienced with Automator, you’re probably asking: Why go to the trouble of creating variables instead of just using the “Move Finder Items” action by itself? I’m glad you asked! The reason is that I want to bring up a file dialog to specify the folder where I want the items to go. There’s not a clean way to have the “Move Finder Items” do that every time. You can change its options to “Show this action when the workflow runs” but you still have to click on it every time you use it to ask it to show a file dialog. If you use Default Folder X to enhance your Open dialogs, it’s faster to just have the dialog pop up and then go where you want to with DFX.
So in the image above, the workflow puts the current Finder selection into the “selection” variable. Then it uses AppleScript to bring up a file dialog to ask for a folder, which it stores in the “path” variable. And finally, it uses the Move Finder Items action to do the work. Not too much more complicated, and it speeds up your workflow considerably if you’ve already got DFX installed so the Open dialogs are smart.
For you Automator programmers, note that some of the actions shown in the workflow do not take inputs. I did this by control-clicking on the action (“Get Value of Variable”, for example) and choosing “Ignore Input” from the contextual menu. If you don’t do this, Automator will actually add the input from the previous step to the next one, which is definitely not what you want in this case.
Oh, and if you just want the automator workflow file so you can add it to your own system, you can download it here:
If you need more help with Automator and Services, Sal Soghoian has some good information and tutorials here:
(Once you’ve gotten through the first few steps of the tutorial, you should be able to just replicate the picture above to make the Move Items service yourself).