You can add a post step to the build process to copy the files to a different place. You can rename the files in the process if you want to. If you have a directory called c:\tmp and you want to put your HEX and ELF there, add:
cp ${ImagePath} c:/tmp
to the post step in the Building node of the Project Properties window:
When you build for production (click the Build Project (hammer) button or the program button), the HEX will end up in c:\tmp. When you build for debug (click Build for Debugging or use the build debug image):
The ELF (or COF) will end up in c:\tmp.
If you want to create the dest directory, in case it does not exist:
MPLAB® X puts the GnuWin32 tools in your path; therefore, cp will be there and gnumkdir is nothing more than GNU mkdir renamed, so it does not clash with the Windows native mkdir. If you are in Linux® or OS X®, we use mkdir and cp as found in the native system.
You can do fancier things if you call a program to do the copying and renaming. At the bottom of the page, you will find a download link to an example of a project that calls copyWithDate (a batch file that is part of the project):
It will copy the HEX or ELF to a file in the project directory whose base name is the current date (like 02_19_2015.hex). You can do similar things if you run a Python, Ruby, Perl, or another script that takes as arguments the macros it needs and does whatever you want.