cron job is programmed, batch job is doing loads of tasks in a go.
they are both related because normally you program batch jobs with cron and to execute them in an hour when the activity is low (early morning like 2 am to 4 am for example depending your company)
cron jobs can be batch jobs, backups, monitoring etc
batch jobs can be mass data loading, mass updating etc