Mithilfe DCL-Kommandos lassen sich sogar komplexe Befehlssequenzen „zerlegen“ und in sehr kompakter Schreibweise zusammenfassen.
Ein DCL-Kommando besteht in aller Regel aus:
Ein Beispiel:
$ PRINT MYFILE.TXT/COPIES=3
Der Befehl druckt die Datei MYFILE.TXT auf dem Standarddrucker 3x aus.
Unvollständige Kommandos werden in der Regel interaktiv um ihre zwingend benötigten Parameter ergänzt - die beiden folgenden führen zum gleichen Ergebnis:
$ RENAME MYFILE1.TXT MYFILE2.TXT $ RENAME _From: MYFILE1.TXT _To: MYFILE2.TXT
Wichtig ist, dass lediglich die zwingend notwendigen Parameter abgefragt werden - eventuelle optionale Parameter und Qualifizierer gehen verloren.
Überlange Kommandos können auch über mehrere Zeilen hinweg geschrieben werden. Die beiden folgenden Befehle bewirken exakt das gleiche:
$ PRINT MYFILE1.TXT/COPIES=1/QUEUE=OFFICEA,MYFILE2.TXT/COPIES=2/QUEUE=OFFICEB,MYFILE3.TXT/COPIES=3/QUEUE=OFFICEC $ PRINT - _$ MYFILE1.TXT/COPIES=1/QUEUE=OFFICEA, - _$ MYFILE2.TXT/COPIES=2/QUEUE=OFFICEB, - _$ MYFILE3.TXT/COPIES=3/QUEUE=OFFICEC
Das hinten angefügte Minus-Zeichen erklärt der Shell, dass das Kommando noch nicht komplett ist. Hierdurch ändert sich auch der Prompt in _$.
Qualifizierer können entweder für einen Parameter oder für einen kompletten DCL-Aufruf definiert werden, ein Beispiel:
$ PRINT MYFILE1.TXT/COPIES=3 MYFILE2.TXT/COPIES=3 MYFILE3.TXT/COPIES=3
Dieser Aufruf würde die Dateien MYFILE1.TXT, MYFILE2.TXT und MYFILE3.TXT jeweils 3x auf dem Standarddrucker ausdrucken. Man könnte das Ganze auch zusammenfassen und folgenden Befehl ausführen:
$ PRINT/COPIES=3 MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT
Parameter können natürlich für jede Definition einen anderen Wert haben - beispielsweise:
$ PRINT MYFILE1.TXT/COPIES=1 MYFILE2.TXT/COPIES=2 MYFILE3.TXT/COPIES=3
Dieser Aufruf würde die Datei MYFILE1.TXT 1x, die Datei MYFILE2.TXT 2x und die Datei MYFILE3.TXT 3x ausdrucken.
Mehrfachdefinitionen sind auch möglich - der folgende Aufruf würde die Dateien prinzipiell 3x ausdrucken; mit Ausnahme von MYFILE3.TXT die nur einmal ausgedruckt wird:
$ PRINT/COPIES=3 MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT/COPIES=1
Jeder Parameter erhält automatisch den Qualifizierer /COPIES=3, der letzte Parameter (in dem Fall eine Datei) MYFILE3.TXT erhält den Qualifizierer /COPIES=1.
Mehrere Qualifizierer werden einfach hintereinander geschrieben, es wird keine Trennung durch Leerzeichen oder Komma vorgenommen - ein Beispiel ist:
$ PRINT/COPIES=3/QUEUE=OFFICEC MYFILE1.TXT,MYFILE2.TXT
Dieser Aufruf druckt die Dateien MYFILE1.TXT und MYFILE2.TXT jeweils 3x auf der Drucker-Warteschlange OFFICEC und nicht der definierten Standard-Warteschlange aus.
Mehrere Parameter werden in der Regel durch Kommas (und nicht durch Leerzeichen wie in der UNIX-Welt) getrennt:
$ TYPE MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT
Der Befehl gibt den Inhalt der Dateien MYFILE1.TXT, MYFILE2.TXT und MYFILE3.TXT aus.
Als Abtrenner zwischen Befehlsdefinitionen und Kommentaren dient unter DCL das Ausrufe zeichen. Alles was hinter einem nicht-maskierten Ausrufezeichen steht ist ein Kommentar - ein Beispiel:
$ SHOW USERS ! This command shows all currently logged in users
Insbesondere in Skripten sind Kommentare sehr hilfreich, um den Code zu erläutern.