The concept of batch files is one of the oldest in computing. Before personal computers and interactive, terminal-based operating systems were used, almost all input to operating systems was so-called batch processing. Batch, in this context, is named after a batch of punch cards, which contained things like program source code, data and JCL, the system's job control language. Nowadays, the term could be applied to any non-interactive list of commands.

Modern mainframe applications still use some kind of batch processing, examples being statistics gathering whic can take place when the load on the database is low (usually at night) and which would take too long to run online on demand.