|
OpenVMS DCL Dictionary
Use of the /FDL qualifier implies that the transfer mode is block by
block; however, the transfer mode you specify with the /TRANSFER_MODE
qualifier prevails.
/LOG
/NOLOG (default)
Controls whether the EXCHANGE/NETWORK command displays the file
specifications of each file copied.
When you use the /LOG qualifier, the EXCHANGE/NETWORK command displays
the following for each copy operation:
- The file specifications of the input and output files
- The number of blocks or the number of records copied (depending on
whether the file is copied on a block-by-block or record-by-record
basis)
/MODIFIED
Modifies the time value specified with the /BEFORE or the /SINCE
qualifier. The /MODIFIED qualifier selects files according to the date
on which they were last modified. This time qualifier is incompatible
with the /BACKUP, /CREATED, and /EXPIRED qualifiers, which also allow
you to select files according to time attributes. If you do not specify
any of these four time qualifiers, the default is the /CREATED
qualifier.
/SINCE[=time]
Selects only those files dated on or after the specified time. You can
specify time as absolute time, as a combination of absolute and delta
times, or as one of the following keywords: BOOT, LOGIN, TODAY
(default), TOMORROW, or YESTERDAY. Specify one of the following time
qualifiers with the /SINCE qualifier to indicate the time attribute to
be used as the basis for selection: /BACKUP, /CREATED (default),
/EXPIRED, or /MODIFIED.
For complete information about specifying time values, refer to the
OpenVMS User's Manual or the online help topic DCL_Tips (subtopic Date_Time).
/STYLE=keyword
Specifies the file name format for display purposes.
The valid keywords for this qualifier are CONDENSED and EXPANDED.
Descriptions are as follows:
Keyword |
Explanation |
CONDENSED (default)
|
Displays the file name representation of what is generated to fit into
a 255-length character string. This file name may contain a DID or FID
abbreviation in the file specification.
|
EXPANDED
|
Displays the file name representation of what is stored on disk. This
file name does not contain any DID or FID abbreviations.
|
The keywords CONDENSED and EXPANDED are mutually exclusive. This
qualifier specifies which file name format is displayed in the output
message, along with the confirmation if requested.
File errors are displayed with the CONDENSED file specification unless
the EXPANDED keyword is specified.
Refer to the OpenVMS Guide to Extended File Specifications for more information.
/TRANSFER_MODE=option
Specifies the I/O method to be used in the transfer. This qualifier is
useful for all file formats. You can specify any one of the following
options:
Option |
Function |
AUTOMATIC
|
Allows the EXCHANGE/NETWORK command to determine the appropriate
transfer mode. This is the default transfer mode.
|
BLOCK
|
Opens both the input and output files for block I/O and transfers the
files block by block.
|
CONVERT[=option[,...]]
|
Reads records from the input file, packs them into blocks, and writes
them to the output file in block mode. The options listed in the
following table determine what additional information is inserted
during the transfer.
|
RECORD
|
Opens both the input and output files for record I/O and transfers the
files record by record. The target system must support record
operations, and the input file must be record oriented.
|
The following four options are available with the CONVERT transfer mode
to control the insertion of special characters in the records:
Option |
Function |
CARRIAGE_CONTROL
|
Any carriage control information in the input file is interpreted,
expanded into actual characters, and included with each record.
|
COUNTED
|
The length of each record, in bytes, is included at the beginning of
the record. The length includes all FIXED_CONTROL, CARRIAGE_CONTROL,
and RECORD_SEPARATOR information in each record.
|
FIXED_CONTROL
|
All variable length with fixed control record (VFC) information is
written to the output file as part of the data. This information
follows the record length information, if the COUNTED option was
specified.
|
RECORD_SEPARATOR=
separator
|
A 1- or 2-byte record separator is inserted between each record. Record
separator characters are the last characters in the record. The three
choices for separator characters are as follows:
- CR: Specifies carriage return only.
- LF: Specifies line feed only.
- CRLF: Specifies carriage return and line feed.
|
Examples
#1 |
$ EXCHANGE/NETWORK VMS_FILE.DAT KUDOS::FOREIGN_SYS.DAT
|
In this example, the EXCHANGE/NETWORK command transfers the file
VMS_FILE.DAT located in the current default device and directory to the
file FOREIGN_SYS.DAT on the non OpenVMS node KUDOS. Because the
/TRANSFER_MODE qualifier was not explicitly specified, the
EXCHANGE/NETWORK command automatically determines whether the transfer
method should be block or record I/O.
#2 |
$ EXCHANGE/NETWORK/TRANSFER_MODE=BLOCK -
_$ KUDOS::FOREIGN_SYS.DAT VMS_FILE.DAT
|
In this example, the EXCHANGE/NETWORK command transfers the file
FOREIGN_SYS.DAT from the non OpenVMS node KUDOS to the file
VMS_FILE.DAT in the current default device and directory. Block I/O is
specified for the transfer mode.
#3 |
$ EXCHANGE/NETWORK/FDL=VMS_FILE_DEFINITION.FDL -
_$ KUDOS::REMOTE_FILE.TXT VMS_FILE.DAT
|
In this example, the EXCHANGE/NETWORK command transfers the file
REMOTE_FILE.TXT on node KUDOS to the file VMS_FILE.DAT. The file
attributes for the output file VMS_FILE.DAT are obtained from the File
Definition Language (FDL) source file VMS_FILE_DEFINITION.FDL. Because
the qualifier /FDL is specified and the /TRANSFER_MODE qualifier is
omitted, the transfer mode uses block I/O, by default.
For more information about creating FDL files, refer to the
OpenVMS Record Management Utilities Reference Manual.
#4 |
$ EXCHANGE/NETWORK -
_$ /TRANSFER_MODE=CONVERT=(CARRIAGE_CONTROL,COUNTED, -
_$ RECORD_SEPARATOR=CRLF,FIXED_CONTROL) -
_$ PRINT_FILE.TXT KUDOS::*
|
In this example, the EXCHANGE/NETWORK command transfers the file
PRINT_FILE.TXT from the current default device and directory to the
file PRINT_FILE.TXT on the non OpenVMS node KUDOS. The use of the
CONVERT option with the /TRANSFER_MODE qualifier forces the input file
to be read in record by record, modified as specified by the CONVERT
options that follow, and written to the output file block by block. As
many records as will fit are packed into the output blocks.
The CONVERT option CARRIAGE_CONTROL specifies that carriage control
information is converted to ASCII characters and inserted before the
data or appended to the record, depending on whether prefix control or
postfix control, or both, are used.
The CONVERT option FIXED_CONTROL specifies that any fixed control
information be translated to ASCII characters and inserted at the
beginning of the record.
The CONVERT option RECORD_SEPARATOR=CRLF appends the two specified
characters, carriage return and line feed, to the end of the record.
The CONVERT option COUNTED specifies that the total length of the
record must be counted (once the impact of all the previous convert
options have been added), and the result is to be inserted at the
beginning of the record, in the first 2 bytes.
EXIT
Terminates processing of a command procedure or subroutine and returns
control to the calling command level---either an invoking command
procedure or interactive DCL. The EXIT command also terminates an image
normally after a user enters Ctrl/Y (executing another image has the
same effect).
Format
EXIT [status-code]
Parameter
status-code
Defines a numeric value for the reserved global symbol $STATUS. You can
specify the status-code parameter as an integer or an expression
equivalent to an integer value. The value can be tested by the next
outer command level. The low-order 3 bits of the value determine the
value of the global symbol $SEVERITY.
If you specify a status code, DCL interprets the code as a condition
code. Note that even numeric values produce warning, error, and fatal
error messages, and that odd numeric values produce either no message
or a success or informational message.
If you do not specify a status code, the current value of $STATUS is
saved. When control returns to the outer command level, $STATUS
contains the status of the most recently executed command or program.
Description
The EXIT and STOP commands both provide a way to terminate the
execution of a procedure. The EXIT command terminates execution of the
current command procedure and returns control to the calling command
level. If you enter the EXIT command from a noninteractive process
(such as a batch job), at command level 0, then the process terminates.
The STOP command returns control to command level 0, regardless of the
current command level. If you execute the STOP command from a command
procedure or from a noninteractive process (such as a batch job), the
process terminates.
When a DCL command, user program, or command procedure completes
execution, the command interpreter saves the condition code value in
the global symbol $STATUS. If an EXIT command does not explicitly set a
value for $STATUS, the command interpreter uses the current value of
$STATUS to determine the error status.
The low-order 3 bits of the status value contained in $STATUS represent
the severity of the condition. The reserved global symbol $SEVERITY
contains this portion of the condition code. Severity values range from
0 to 4, as follows:
Value |
Severity |
0
|
Warning
|
1
|
Success
|
2
|
Error
|
3
|
Information
|
4
|
Severe (fatal) error
|
Note that the success and information codes have odd numeric values,
and that warning and error codes have even numeric values.
When any command procedure exits and returns control to another level,
the command interpreter tests the current value of $STATUS. If $STATUS
contains an even numeric value and if its high-order bit is 0, the
command interpreter displays the system message associated with that
status code, if one exists. (If no message exists, the message NOMSG
will be displayed.) If the high-order bit is 1, the message is not
displayed.
When a command procedure exits following a warning or error condition
that has already been displayed by a DCL command, the command
interpreter sets the high-order bit of $STATUS to 1, leaving the
remainder of the value intact. This ensures that error messages are not
displayed by both the command that caused the error, and by the command
procedure.
The EXIT command, when used after you interrupt an image with Ctrl/Y,
causes a normal termination of the image that is currently executing.
If the image declared any exit-handling routines, they are given
control. This is in contrast to the STOP command, which does not
execute exit-handling routines. For this reason, the EXIT command is
generally preferable to the STOP command.
Examples
The EXIT command in this example exits to the next higher command
level, giving $STATUS and $SEVERITY a value of 1.
#2 |
$ ON WARNING THEN EXIT
$ FORTRAN 'P1'
$ LINK 'P1'
$ RUN 'P1'
|
The EXIT command in this example is used as the target of an ON
command; this statement ensures that the command procedure terminates
whenever any warnings or errors are issued by any command in the
procedure.
The procedure exits with the status value of the command or program
that caused the termination.
#3 |
$ START:
$ IF (P1 .EQS. "TAPE") .OR. (P1 .EQS. "DISK") THEN GOTO 'P1'
$ INQUIRE P1 "Enter device (TAPE or DISK)"
$ GOTO START
$ TAPE: ! Process tape files
.
.
.
$ EXIT
$ DISK: ! Process disk files
.
.
.
$ EXIT
|
The command procedure in this example shows how to use the EXIT command
to terminate different command paths within the procedure. To execute
the procedure, you must enter either TAPE or DISK as a parameter. The
IF command uses a logical OR to test whether either of these strings
was entered. If the result is true, the GOTO command branches to the
corresponding label. If P1 was neither TAPE nor DISK, the INQUIRE
command prompts for a correct parameter.
The commands following each of the labels TAPE and DISK provide
different paths through the procedure. The EXIT command before the
label DISK ensures that the commands after the label DISK are executed
only if the procedure explicitly branches to DISK.
Note that the EXIT command at the end of the procedure is not required
because the end of the procedure causes an implicit EXIT command. Use
of the EXIT command, however, is recommended.
#4 |
$ IF P1. EQS. "" THEN -
INQUIRE P1 "Enter filespec (null to exit)"
$ IF P1 .EQS. "" THEN EXIT
$ PRINT 'P1'/AFTER=20:00/COPIES=50/FORMS=6
|
The command procedure in this example tests whether a parameter was
passed to it; if the parameter was not passed, the procedure prompts
for the required parameter. Then it retests the parameter P1. If a null
string, indicated by a carriage return for a line with no data, is
entered, the procedure exits; otherwise, it executes the PRINT command
with the current value of P1 as the input parameter.
#5 |
$ IF P1 .EQS. "" THEN INQUIRE P1 "Code"
$ CODE = %X'P1'
$ EXIT CODE
|
The command procedure in this example, E.COM, illustrates how to
determine the system message, if any, associated with a hexadecimal
system status code. The procedure requires a parameter and prompts if
none is entered. Then it prefixes the value with the radix operator %X
and assigns this string to the symbol CODE. Finally, it issues the EXIT
command with the hexadecimal value. The following example uses the
procedure E.COM:
$ @E 1C
%SYSTEM-F-EXQUOTA, exceeded quota
|
When the procedure exits, the value of $STATUS is %X1C, which equates
to the EXQUOTA message. Note that you can also use the F$MESSAGE
lexical function to determine the message that corresponds to a status
code.
#6 |
$ RUN MYPROG
[Ctrl/Y]
$ EXIT
|
In this interactive example, the RUN command initiates execution of the
image MYPROG.EXE. Then pressing Ctrl/Y interrupts the execution. The
EXIT command that follows calls any exit handlers declared by the image
before terminating MYPROG.EXE.
FONT
Converts an ASCII bitmap distribution format (BDF) into binary portable
compiled format (PCF) on Alpha systems and into binary server natural
form (SNF) on VAX systems. The DECwindows server uses a PCF or SNF file
to display a font. In addition to converting the BDF file to binary
form, the font compiler provides statistical information about the font
and the compilation process.
For more information about using the font compiler, refer to the the
OpenVMS DECwindows programming documentation or online help.
Format
FONT filespec
GOSUB
Transfers control to a labeled subroutine in a command procedure
without creating a new procedure level.
Format
GOSUB label
Parameter
label
Specifies a label of 1 to 255 alphanumeric characters that appears as
the first item on a command line. A label may not contain embedded
blanks. When the GOSUB command is executed, control passes to the
command following the specified label.
The label can precede or follow the GOSUB statement in the current
command procedure. When you use a label in a command procedure, it must
be terminated with a colon (:). If you use duplicate labels, control is
always given to the label most recently read by DCL.
Description
Use the GOSUB command in command procedures to transfer control to a
subroutine specified by the label. If the command stream is not being
read from a random-access device (that is, a disk device), the GOSUB
command performs no operation.
The RETURN command terminates the GOSUB subroutine procedure, returning
control to the command following the calling GOSUB statement. The
RETURN command accepts an optional status value.
The GOSUB command does not cause the creation of a new procedure level.
Therefore, it is referred to as a "local" subroutine call.
Any labels and local symbols defined in the current command procedure
level are available to a subroutine invoked with a GOSUB command. The
GOSUB command can be nested up to a maximum of 16 levels per procedure
level.
When the command interpreter encounters a label, it enters the label in
a label table. This table is allocated from space available in the
local symbol table. If the command interpreter encounters a label that
already exists in the table, the new definition replaces the existing
one. Therefore, if you use duplicate labels, control is always given to
the label most recently read by DCL. The following rules apply:
- If duplicate labels precede and follow the GOSUB command, control
is given to the label preceding the command.
- If duplicate labels all precede the GOSUB command, control is given
to the most recent label, that is, the one nearest the GOSUB command.
- If duplicate labels all follow the GOSUB command, control is given
to the one nearest the GOSUB command.
If a label does not exist in the current command procedure, the
procedure cannot continue and is forced to exit.
Note that the amount of space available for labels is limited. If a
command procedure uses many symbols and contains many labels, the
command interpreter may run out of table space and issue an error
message.
Example
|
$!
$! GOSUB.COM
$!
$ SHOW TIME
$ GOSUB TEST1
$ WRITE SYS$OUTPUT "success completion"
$ EXIT
$!
$! TEST1 GOSUB definition
$!
$ TEST1:
$ WRITE SYS$OUTPUT "This is GOSUB level 1."
$ GOSUB TEST2
$ RETURN %X1
$!
$! TEST2 GOSUB definition
$!
$ TEST2:
$ WRITE SYS$OUTPUT "This is GOSUB level 2."
$ GOSUB TEST3
$ RETURN
$!
$! TEST3 GOSUB definition
$!
$ TEST3:
$ WRITE SYS$OUTPUT "This is GOSUB level 3."
$ RETURN
|
This sample command procedure shows how to use the GOSUB command to
transfer control to labeled subroutines. The GOSUB command transfers
control to the subroutine labeled TEST1. The procedure executes the
commands in subroutine TEST1, branching to the subroutine labeled
TEST2. The procedure then executes the commands in subroutine TEST2,
branching to the subroutine labeled TEST3. Each subroutine is
terminated by the RETURN command. After TEST3 is executed, the RETURN
command returns control back to the command line following each calling
GOSUB statement. At this point, the procedure has been successfully
executed.
GOTO
Transfers control to a labeled statement in a command procedure.
Format
GOTO label
Parameter
label
Specifies a label of 1 to 255 alphanumeric characters that appears as
the first item on a command line. A label cannot contain embedded
blanks. When the GOTO command is executed, control passes to the
command following the specified label.
When you use a label in a command procedure, it must be terminated with
a colon (:). If you use duplicate labels, control is always given to
the label most recently read by DCL.
Description
Use the GOTO command in command procedures to transfer control to a
line that is not the next line in the procedure. The label can precede
or follow the GOTO statement in the current command procedure. If the
command stream is not being read from a random-access device (that is,
a disk device), the GOTO command performs no operation.
If the target label of a GOTO command is inside a separate IF-THEN-ELSE
construct, an error message (DCL-W-USGOTO) is returned.
When the command interpreter encounters a label, it enters the label in
a label table. This table is allocated from space available in the
local symbol table. If the command interpreter encounters a label that
already exists in the table, the new definition replaces the existing
one. Therefore, if you use duplicate labels, control is always given to
the label most recently read by DCL. In general:
- If duplicate labels precede and follow the GOTO command, control is
given to the label preceding the command.
- If duplicate labels all precede the GOTO command, control is given
to the most recent label, that is, the one nearest the GOTO command.
- If duplicate labels all follow the GOTO command, control is given
to the one nearest the GOTO command.
If a label does not exist in the current command procedure, the
procedure cannot continue and is forced to exit.
Note that the amount of space available for labels is limited. If a
command procedure uses many symbols and contains many labels, the
command interpreter may run out of table space and issue an error
message.
Examples
#1 |
$ IF P1 .EQS. "HELP" THEN GOTO TELL
$ IF P1 .EQS. "" THEN GOTO TELL
.
.
.
$ EXIT
$ TELL:
$ TYPE SYS$INPUT
To use this procedure, you must enter a value for P1.
.
.
.
$ EXIT
|
In this example, the IF command checks the first parameter passed to
the command procedure; if this parameter is the string HELP or if the
parameter is not specified, the GOTO command is executed and control is
passed to the line labeled TELL; otherwise, the procedure continues
executing until the EXIT command is encountered. At the label TELL, a
TYPE command displays data in the input stream that documents how to
use the procedure.
#2 |
$ ON ERROR THEN GOTO CHECK
.
.
.
$ EXIT
$ CHECK: ! Error handling routine
.
.
.
$ END:
$ EXIT
|
The ON command establishes an error-handling routine. If any command or
procedure subsequently executed in the command procedure returns an
error or severe error, the GOTO command transfers control to the label
CHECK.
HELP
The HELP command invokes the Help facility to display information about
use of the system, including formats and explanations of commands,
parameters, qualifiers, and system messages. In response to the Topic?
prompt, you can:
- Type the name of the command or topic for which you need help.
- Type INSTRUCTIONS for more detailed instructions on how to use HELP.
- Type HINTS if you are not sure of the name of the command or topic
for which you need help.
- Type /MESSAGE for help with the HELP/MESSAGE utility.
- Type a question mark (?) to redisplay the most recently requested
text.
- Press RETURN one or more times to exit from HELP.
You can abbreviate any topic name, although ambiguous abbreviations
result in all matches being displayed.
Format
HELP [topic[subtopic...]]
Parameter
topic[subtopic...]
Specifies the topics or topic and subtopics on which you want
information from a help library.
Description
Information within help libraries is arranged in a hierarchical manner.
The levels are as follows:
- None---If you do not specify a keyword, the Help facility describes
the HELP command and lists the topics that are documented in the root
library. Each item in the list is a keyword in the first level of the
hierarchy.
- Topic-name---If you specify a keyword by naming a topic, the Help
facility describes the topic as it is documented in either the root
library or in one of the other enabled default libraries. Keywords for
additional information available on this topic are listed.
- Topic-name subtopic---If you specify a subtopic following a topic,
the Help facility provides a description of the specified subtopic.
- @filespec followed by any of the previous levels---If you specify a
help library to replace the current root library, the Help facility
searches that library for a description of the topic or subtopic
specified. The file specification must take the same form as the file
specification included with the /LIBRARY command qualifier. However, if
the specified library is an enabled user-defined default library, the
file specification can be abbreviated to any unique leading substring
of that default library's logical name translation.
|