Course type
Course location
Course dates
Full course price

This course starts with the basic components of command procedures and builds to describe the extensive capabilities available within command procedures.


OpenVMS Fundamentals or equivalent experience.

Course Objectives

Upon completion of the course, students should be able to:

  • Use programming concepts and methodology
  • Design and implement command procedures
  • Control the process environment from within the command procedure
  • Interact with the user and other command procedures
  • Control and redirect I/O
  • Work with sequential files
  • Work with lexical functions

Course Audience

OpenVMS users
OpenVMS system managers
OpenVMS applications programmers
OpenVMS system programmers

Course Outline

  • DCL as a programming language
  • DCL command syntax
  • Symbols and variables
  • Conditional tests
  • Loops
  • Lexical functions
  • Error handling
  • Preserving a user environment
  • Protecting the command procedure environment
  • Passing information to command procedures
  • Obtaining information interactively
  • Nested command procedures
  • Subroutines
  • Recursion
  • Programming menus
  • Batch considerations
  • Obtaining the string length
  • Locating a string within another string
  • Extracting parts of a string
  • Normalizing strings
  • Arrays
  • Constructing strings with F$FAO
  • Bit fields and special characters
  • Escape sequences
  • Time conversion
  • Process-permanent logicals: SYS$INPUT, SYS$OUTPUT, SYS$ERROR, SYS$COMMAND
  • I/O redirection
  • The $ PIPE command
  • Introduction to file I/O
  • Reading and writing sequential files
  • Process concepts
  • Obtaining process information
  • Wildcarding on processes
  • Obtaining system and cluster information
  • Wildcarding on nodes
  • Obtaining console information
  • RMS file concepts
  • Indexed file processing
  • Obtaining device information
  • Wildcarding on device names
  • File attributes
  • File lookup
  • Obtaining queue information
  • Translating logical names
  • Planning and implementing command procedures

Instructors in this course

Darya Zelenina

2 years of VMS teaching experience, course developer.
Languages: English, Russian

Dennis O'Brien

40+ years of OpenVMS support and teaching experience, founder of the Bruden Corporation, author of OpenVMS, HP-UX, Tru64 UNIX, and C Programming courses and books.
Languages: English

Homi Faris

31 years of VMS support and teaching experience, started at DEC teaching almost all VMS courses, now a member of the VSI support team and pre-sales in France.
Languages: French

Gerrit Woertman

38 years of OpenVMS support and teaching experience. Application support, Fortran programming, demo-center, consultancy, pre-sales. HP Certified OpenVMS Systems Engineer with extensive systems management and migration experience.
Languages: English, Dutch

Tom Wade

HP Certified OpenVMS Systems Engineer with 36 years of OpenVMS support and teaching experience; has lectured in UCD to degree level in computer science and computer networking.
Languages: English

Mark Jilson

20 years of VMS support and teaching experience.
Languages: English

Jerry Henson

39 years of experience as a VMS programmer (Fortran, C, Basic, Cobol), extensive experience with ACMS.
Languages: English