Le Job Control Language (JCL) est un nom pour les langages de script utilisés sur les systèmes d'exploitation centraux d'IBM. Il indique au système comment exécuter un travail par lots ou démarrer un sous-système.
Le but du JCL est de dire quels programmes exécuter, en utilisant quels fichiers ou périphériques d'entrée ou de sortie. Il peut indiquer dans quelles conditions il faut sauter une étape.
Il existe deux langages distincts pour le contrôle des tâches chez IBM :
- un pour la lignée du système d'exploitation qui commence avec DOS/360 et dont le dernier membre est z/VSE ; et
- l'autre pour la lignée de OS/360 à z/OS, cette dernière incluant désormais les extensions JES, Job Entry Control Language (JECL).
Ils partagent quelques règles syntaxiques de base et quelques concepts de base, mais sont par ailleurs très différents.