In a computer, a batch job is a program that is assigned to the computer to run without further user interaction. Examples of batch jobs in a PC are a printing request or an analysis of a Web site log. In larger commercial computers or servers, batch jobs are usually initiated by a system user. Some are defined to run automatically at a certain time.
In some computer systems, batch jobs are said to run in the background and interactive programs run in the foreground. In general, interactive programs are given priority over batch programs, which run during the time intervals when the interactive programs are waiting for user requests.
The term originated with mainframe computers when punched cards were the usual form of computer input and you put a batch of cards (one batch per program) in a box in the sequence that they were to be fed into the computer by the computer operator. (Hopefully, you got the output back the next morning.)