DCL 2

Logicals:

A logical is a logical name for a file or a directory.

Examples:

$ DEFINE TESTFILE DKA100:[TEST]TEST.TXT

allow any program to refer to the file as TESTFILE

$ DEFINE TESTDIR DKA100:[TEST]

allow any program to refer to TESTDIR:A.TXT and TESTDIR:B.TXT for DKA100:[TEST]A.TXT and DKA100:[TEST]B.TXT

$ DEFINE MYSTUFF DKA100:[MYSTUFF.] /TERMINAL /TRANSLATION=CONCEALED

allow any program to refer to MYSTUFF:[TEST]A.TXT and MYSTUFF:[TEST]B.TXT for DKA100:[MYSTUFF.TEST]A.TXT and DKA100:[MYSTUFF.TEST]B.TXT

Logicals can be scoped with /PROCESS, /JOB, /GROUP and /SYSTEM.

Symbols:

Symbols can be used both as variables in scripts and as command aliases.

$ a = a + 1

is a variable increment in a DCL script.

$ DLC :== DELETE/LOG/CONFIRM

in the file SYS$LOGIN:LOGIN.COM (which is executed at login) will make DLC an alias for DELETE/LOG/CONFIRM.

The short version is that = and == are for variables while := and :== are for aliases where one equal sign means current script only and two equal signs means keep.

Scripts:

DCL scripts are put in files with extension .COM and are executed with the @ command.

All DCL commands must be prefixed with a $ sign.