A system that takes a sequence (a "batch") of commands or jobs, executes them and returns the results, all without human intervention. This contrasts with an interactive system where the user's commands and the computer's responses are interleaved during a single run.
A batch system typically takes its commands from a disk file (or a set of punched cards or magnetic tape in the mainframe days) and returns the results to a file (or prints them). Often there is a queue of jobs which the system processes as resources become available.
Since the advent of the personal computer, the term "batch" has come to mean automating frequently performed tasks that would otherwise be done interactively by storing those commands in a "batch file" or "script". Usually this file is read by some kind of command interpreter but batch processing is sometimes used with GUI-based applications that define script equivalents for menu selections and other mouse actions. Such a recorded sequence of GUI actions is sometimes called a "macro". This may only exist in memory and may not be saved to disk whereas a batch normally implies something stored on disk.
Unix cron jobs and Windows scheduled tasks are batch processing started at a predefined time by the system whereas mainframe batch jobs were typically initiated by an operator loading them into a queue.