Both are different things altogether and should not be compared.
I will try to put them as simply as possible.
Executor framework comes under concurrency.
Multiple threads can be created in
Java to do things parallely.
Executor framework was developed to take care of
thread management. So keeping thread creation and management away from the application.
Spring batch is a framework to run multiple jobs/tasks which may be parallel/series without manual intervention.
Concurrency can be achieved in Spring batch, but it is developed to handle much more things.
You can go through the introduction of spring batch
here