I'm nor so sure you can get AVRDUDE to burn two separate hex files (as in sketch code and bootloader code) as I think it has to erase flash before it burns the flash.
I have the entire BATCH script here: http://www.hackster.io/rayburne/avr-firmware-duplicator
but, in general:
To Read and create a disk file image:
flash
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U flash:r:%temp%\backup_flash.bin:r
eeprom
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U eeprom:r:%temp%\backup_eeprom.bin:r
hfuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U hfuse:r:%temp%\backup_hfuse.bin:r
lfuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U lfuse:r:%temp%\backup_lfuse.bin:r
efuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U efuse:r:%temp%\backup_efuse.bin:rTo Write a disk file image into the ATmega328 microcontroller (no line breaks):
flash
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U flash:w:\Users\owner\AppData\Local\Temp\backup_flash.bin
eeprom
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U eeprom:w:\Users\owner\AppData\Local\Temp\backup_eeprom.bin
hfuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U hfuse:w:\Users\owner\AppData\Local\Temp\backup_hfuse.bin
lfuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U lfuse:w:\Users\owner\AppData\Local\Temp\backup_lfuse.bin
efuse
avrdude -c arduino -P com9 -p ATMEGA328P -b 19200 -U efuse:w:\Users\owner\AppData\Local\Temp\backup_efuse.bin
intelhex.pdf (28.5 KB)
Intel HEX-record Format.pdf (114 KB)