The batch api is primary design to work with forms and it depends what is the purpose of your use, but you can create a function that mimic form submission, and then you can use batch together with cron, assume you have function that will be triggered by a rule on cron run, so this function is function1:
<?php
function function1 () {
$form_state = array();
$form_state['values']['hidden_value'] = 1;
$form_state['values']['op'] = 'Test';
$form_state['values']['submit'] = 'Test';
drupal_form_submit('function1_batch_form',
$form_state);
}
function function1_batch_form($form, &$form_state) {
$form['hidden_value'] = array(
'#type' => 'hidden',
'#value' => 1,
);
return $form;
}
function function1_batch_form_submit($form, &$form_state) {
if ($form_state['values']['hidden_value'] == 1) {
$batch = function1_batch_process($date);
batch_set($batch);
}
}
?>