Using confirm_form to lead into a batch process
I always do this with a simple submit handler on the form...works a treat:

function my_confirm_form($form, &amp;$form_state) {
  return confirm_form($form, 'Are you sure you want to run this batch?');
}

function my_confirm_form_submit($form, &amp;$form_state) {
  $batch = my_batch_function();
  batch_set($batch);
}