En informatique, un traitement par lots (batch processing en anglais) est un enchaînement automatique de commandes sans intervention d'un opérateur.
Le déclenchement de ces traitements peut ainsi être automatisé, par exemple grâce au programme cron dans un système Unix. Les traitements par lots sont surtout utilisés pour des tâches automatisées, notamment pour la gestion des comptes sur le parc informatique d'une entreprise, d'une université… Les travaux lancés en lots n'utilisent que les cycles processeur non utilisés par les travaux interactifs. Les lots ont donc toujours une priorité d'exécution plus basse que les interactifs mais en revanche un temps d'exécution (time slice) plus élevé que les interactifs de façon à rester en mémoire principale le plus longtemps possible. Pourquoi le time slice est-il plus généreux pour un lot que pour un travail interactif ? Parce que lors d'un ordre de lecture de la base de données, le système charge dans le buffer plusieurs slots de façon à faire le moins possible d'accès disque, sachant qu'un accès disque provoque immédiatement une purge sur disque du lot qui devra attendre de revenir en mémoire pour continuer à s'exécuter.
La deuxième génération d'ordinateurs était exploitée exclusivement sous forme de traitement par lots, progrès sur l'utilisation en vacations de ceux de la première génération. La notion de système d'exploitation devint alors essentielle. Les ordinateurs étaient alimentés en entrée par des instructions encodées sur des cartes perforées et fournissaient les données de sortie sur des imprimantes (exemple : le système FMS).
Les terminaux interactifs en ligne de commande ne se sont répandus que vers le milieu des années 1960, lorsque que le coût du temps machine est devenu suffisamment abordable - et donc a touché un plus vaste nombre d'utilisateurs potentiels - grâce à la troisième génération d'ordinateurs.
Un vrai traitement batch comprend des codes de condition permettant d'enchaîner les traitements comme un véritable programme (si... alors... sinon...). Un programme batch n'a pas besoin pour s'exécuter d'obtenir une réponse de l'utilisateur, il s'exécute en autonome. les travaux batch sont surtout lancés de nuit par les opérateurs système suivant le planning établi, ou bien par un robot sous surveillance d'un seul opérateur. Cette notion de travaux batch n'existe réellement que sur les environnements IBM (mainframe et AS/400) et pas du tout sur Windows, et sur Unix.
Par extension, un fichier batch est, sous le système d'exploitation Windows, un fichier (ou script) contenant une série d'instructions DOS. Ces fichiers, lorsqu'ils sont lancés, exécutent les commandes contenues dans le fichier.