Job Control Language (JCL) é um nome para as linguagens de scripting utilizadas nos sistemas operacionais IBM mainframe. Ele instrui o sistema sobre como executar um trabalho em lote ou iniciar um subsistema.

O objetivo do JCL é dizer quais programas devem ser executados, usando quais arquivos ou dispositivos para entrada ou saída. Ele pode indicar sob quais condições pular um passo.

Existem dois idiomas distintos para o controle de trabalhos da IBM:

  • uma para a linhagem do sistema operacional que começa com DOS/360 e cujo último membro é z/VSE; e
  • a outra para a linhagem de OS/360 a z/OS, esta última agora incluindo extensões JES, Job Entry Control Language (JECL).

Eles compartilham algumas regras básicas de sintaxe e alguns conceitos básicos, mas de outra forma são muito diferentes.