[an error occurred while processing this directive]
Software  >  OpenVMS Systems > Documentation > 731final > 6489 > hanzi

HP OpenVMS Systems Documentation

Content starts here

OpenVMS �û��ֲ�


ǰҳ Ŀ¼ ����

13.5.3 �� 3 ��: ����ѭ��

ѭ�����ظ�ִ��ֱ������������һ����䡣ѭ������������ʾ:

  1. ���û�������ֵ 
  2. ��������
  3. �ظ�������ֱ���û��˳��������

Ҫ��дѭ������ѭ�������:

���� ����
1 �ӱ�ſ�ʼѭ����
2 ���Ա�����ȷ���Ƿ���Ҫִ��ѭ���е����
3 �������Ҫִ��ѭ������ǰȥѭ����ĩ�ˡ�
4 �����Ҫִ��ѭ������ִ����ѭ�����е����Ȼ�󷵻ص�ѭ���Ŀ�ʼ��
5 ����ѭ����

��������չʾ CLEANUP.COM ��������е�ѭ��ʹ��:


$ GET_COM_LOOP:
$     INQUIRE COMMAND-
$     "Enter command (DELETE, DIRECTORY. EXIT, PRINT, PURGE, TYPE)"
$     IF COMMAND .EQS. "EXIT" THEN GOTO END_LOOP
$!
$! Execute if user entered DELETE
$ DELETE:
$     IF COMMAND .NES. "DELETE" THEN GOTO DIRECTORY
$     WRITE SYS$OUTPUT "This is the DELETE section."
$     GOTO GET_COM_LOOP
   .
   .
   .
$ END_LOOP:
$     WRITE SYS$OUTPUT "Directory ''F$DIRECTORY()' has been cleaned"
$ EXIT

һ������ִ�У����ƾʹ��ݻ� GET_COM_LOOP ��ţ�ֱ���û����� EXIT ��������� EXIT ����ʱ������������һ����Ϣ����Ŀ¼�ѱ�������

13.5.4 �� 4 ��: �����������

Ҫ����������̣���ѭ�������:

���� ����
1 ������������Ҫ�˳������������̡�
2 ���� EXIT �� STOP ���

13.5.4.1 ʹ�� EXIT ����

���԰� EXIT ����������������:

  • ȷ�����̲�ִ��ijЩ��
  • ������һ������ִ��·���Ĺ���
  • �����������

������һ��ʹ�� EXIT ��������ӣ��ɱ���ִ��λ�ڹ���ĩ�˵ij����������г���:


   .
   .
   .
$ EXIT ! End of normal execution path
$ ERROR_ROUTINE
   .
   .
   .

������һ��ʹ�� EXIT ��������ӣ��ɽ�����һ������ִ��·���Ĺ���:


$ 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

��ÿ����� (TAPE �� DISK) ���������Ϊ�����ṩ��ͬ·������ DISK ���֮ǰ�� EXIT ����ȷ����ִ���� DISK ���֮������������ȷ���������ŵĹ��̷�֧��

�ڹ��̵�ĩ�˲���Ҫ EXIT �����Ϊ���̵��ļ��������(end-of-file) ����һ��DZ�ڵ� EXIT ���Ȼ����Compaq ������ʹ�� EXIT ���

13.5.4.2 ʹ�� STOP ����

����������У�����ʹ�� STOP ����ȷ������������س�������ֹ���̡���� STOP ��������ڽ���ִ�е���������У���ô���ƽ����ص� DCL ��������������������ģʽִ�У���������ҵ��ֹ��

��������и��߹�������������س�����ֹͣ:


$ ON SEVERE_ERROR THEN STOP

13.5.5 �� 5 ��: ���Ժ͵��Գ����߼�

һ��ʹ�ó���׮��д���룬��Ӧ�ò���������̵�ȫ���߼���Ӧ�ò������п��ܵ�ִ��·����

��ѭ������̲��Ժ͵����������:

���� ����
1 ���������������ÿ����Ч�����Բ��Գ����߼���
2 ������Ч�����Լ������Գ����߼���
3 ʹ�� EXIT �����˳������������ɲ��Գ����߼���
4 �����Ҫ����ʹ�� SET VERIFY��SET PREFIX �� SHOW SYMBOL ���������Գ���

��������չʾ���ͨ�������ִ��ÿ�����������Ч����Ȼ���˳������������:


$ @CLEANUP
  Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): DELETE
  This is the DELETE section.
  Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): DIRECTORY
  This is the DIRECTORY section.
   .
   .
   .
  Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): PRINF
  You have entered an invalid command.
  Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): EXIT
$

13.5.5.1 �����������

����ʹ������������������������:

  • SET VERIFY
    ��ʾÿ��Ȼ��ִ��֮��У�����ʱ���ɲ鿴�������ͷ�������������ڵ��С�����ʹ�� SET VERIFY ����Ĺؼ���ָ��ֻУ��ijЩ�����л������С�
    SET VERIFY �������Ч��ֱ����ע�������� SET NOVERIFY �������ʹ�� F$VERIFY �ʷ���������У�����á�(�� 15 ����������У�����õ����顣)
  • SET PREFIX
    ���У����Ч��Ҳ����ʹ�� DCL ���� SET PREFIX �Թ�����־�ļ����ʱ�������������ÿ��������ǰ��������ִ��ʱ�䡣
  • SHOW SYMBOL
    SHOW SYMBOL �����������ȷ������������ڹ����ж���ġ�

����: ʹ�� SET VERIFY ������е���

�����������У���� END_LOP ƴд������Ϊ����У�飬�ʿ��Ծ�ȷ�ز鿴���������:


$ SET VERIFY
$ @CLEAN
$ GET_COM_LOOP:
$    INQUIRE COMMAND -
     "Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE)"
 Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): EXIT
$    IF COMMAND .EQS. "EXIT" THEN GOTO END_LOP
%DCL-W-USGOTO, target of GOTO not found -
 check spelling and presence of label

Ҫ����������󣬿ɰѱ�Ÿ���Ϊ END_LOOP��

����: ʹ�� SET PREFIX ������е���

��������˵��ʱ�����ʹ��:


$  SET VERIFY
$  @TEST
$  SET DEFAULT SYS$LOGIN
$  SHOW DEFAULT
   USER$:[SMYTHE]
$  SET PREFIX "(!5%T) "
$  @TEST
 (17:52)  $ SET DEFAULT SYS$LOGIN
 (17:52)  $ SHOW DEFAULT
   USER$:[SMYTHE]

����: ʹ�� SHOW SYMBOL ������е���

��������չʾ SHOW SYMBOL �������������ȷ������ COMMAND �����������:


$ SET VERIFY
$ @CLEAN
$ GET_COM_LOOP:
$    INQUIRE COMMAND -
     "ENTER COMMAND (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE)"
  ENTER COMMAND (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE): EXIT
$ SHOW SYMBOL COMMAND
 COMMAND = "EXIT"
$    IF COMMAND .EQS. "exit" THEN GOTO END_LOOP
   .
   .
   .

SHOW SYMBOL ����չ�ַ��� COMMAND ��ֵΪ "EXIT"����Ϊ INQUIRE �����Զ�������ת��Ϊ��д��ĸ����������� IF ���ʹ��Сд��ĸ�ַ��� "exit"����� DCL ȷ����Щ�ַ����Dz�ͬ�ġ�Ҫ�����������ȷ���� IF ����е������ַ������Դ�д��ĸ��ʽд�롣����ַ��������ಿ�ֿ���ʹ�ô�д��ĸ��Ҳ����ʹ��Сд��ĸ��

13.5.5.2 ����У��ִ��

���������ִ������У��ʱ��Ҳ�����ж�������������̲����� SET VERIFY ����� Ctrl/Y ��ϼ�ʱ��ͨ��������Щ�����������У��:

���� ����
1 ���� Ctrl/Y ���ж�ִ�С�
2 ���� SET VERIFY ���
3 ���� CONTINUE ����ɼ���ִ��������� (����У��)��

13.5.6 �� 6 ��: �����������

һ����ԣ�������̵�ִ�в�Ҫ�����û��Ľ���״̬����ˣ��������Ӧ�ð���һ��ѽ��̷��ص�����ԭʼ״̬�������������ͨ���DZ��Ϊ "CLEAN_UP" �������г��򲿷֡���ͨ��������������ر��ļ�����������Ĭ���豸��Ŀ¼��

��ѭ������̿ɰ�����������ӵ��������:

���� ����
1 ��һ����ſ�ʼ��������г������� CLEAN_UP��
2 ʹ�� F$GETJPI �ʷ����������κδ򿪵��ļ���
3 ʹ�� DELETE �� PURGE ����ɾ���κ���ʱ���޹ص��ļ���
4 ����������κ�Ĭ�� (�����豸��Ŀ¼)����ʹ�� SET DEFAULT ��������ǻָ������ǵ�ԭʼ״̬��
5 ���� ON CONTROL_Y ���ȷ�����������ִ�С�

13.5.6.1 �ر��ļ�

��������κ��ļ������˳�����֮ǰȷ���ر����ǡ�����ʹ�ôʷ����� F$GETJPI ��鱣�ֽ��̵Ĵ��ļ����� (FILCNT)����� FILCNT ��������̵Ŀ�ʼ�ͽ�����һ���ģ���ô��֪���ѹر������ļ���

��Щ���������ھ����û����д򿪵��ļ�:


$ FIL_COUNT = F$GETJPI ("","FILCNT")
   .
   .
   .
$ IF FILCNT .NE. F$GETJPI ("", "FILCNT") THEN-
  WRITE SYS$OUTPUT "WARNING -- file left open)

13.5.6.2 ɾ����ʱ���޹��ļ�

�����������ʱ�ļ�����ɾ�����ǡ�һ����ԣ�����������κ��ļ�����Ӧ�����������ɾ����ǰ�ĸ�������ɾ������δ�������ļ�֮ǰ��ȷ����Ҫɾ�����ǡ����磬�����������һ��������Ҫ���ݵ��ļ����Ϳ��Կ�ѡ�ؽ������������

�����������Ĭ���豸��Ŀ¼����ô���˳��������֮ǰ��������ԭʼĬ�ϡ�Ҫ����ԭʼ��Ĭ��Ŀ¼����ʹ�� F$ENVIRONMENT �ʷ������� DEFAULT �ؼ��֡���������̵�ĩ�ˣ�����һ�� SET DEFAULT ����ָ�������豸��Ŀ¼��

������ӵ�������չʾ����ͻָ��豸��Ŀ¼��Ĭ��ֵ:


$ SAV_DEFAULT = F$ENVIRONMENT ("DEFAULT")
   .
   .
   .
$ SET DEFAULT 'SAV_DEFAULT'

13.5.6.3 ͨ�����ĵĽ�������

�±��г�����ͨ�����ĵĽ����������ʷ�������������������������ʷ����������������ָ���������:

���� ���ڱ���Ĵʷ����� ���ڻָ��Ĵʷ�����
DCL ��ʾ F$ENVIRONMENT SET PROMPT
Ĭ�ϱ��� F$ENVIRONMENT SET PROTECTION/DEFAULT
��Ȩ F$SETPRV F$SETPRV �� SET PROCESS/PRIVILEGES
�����ַ� F$ENVIRONMENT SET CONTROL
�� F$VERIFY F$VERIFY
��Ϣ��ʽ F$ENVIRONMENT SET MESSAGE
��״̬ F$ENVIRONMENT SET KEY

�й���Щ�ʷ���������������������� OpenVMS DCL Dictionary��

13.5.6.4 ȷ��ִ���������

Ҫȷ����ʹ��������쳣����ҲҪִ����������������������ʹ��������俪ʼÿ�����:


$ ON CONTROL_Y THEN GOTO CLEANUP

�й�ʹ�� ON CONTROL_Y ��������飬������� 14 ����

13.5.7 �� 7 ��: ����������

����ȷ���һ�����ʱ�������¼�������������:

���� ����
1 ������������滻��һ������׮�����
2 ����������̣�ȷ��������ǡ���ز�����
3 ����б�Ҫ����������̡�
4 ��һ������׮���ʱ��ת����һ�����Դ����ƣ�ֱ���滻���г���׮��

����: �������滻����׮

��������չʾ CLEANUP.COM �� TYPE �εĴ���:


$! Execute if user entered TYPE
$! TYPE:
$      IF COMMAND .NES. "TYPE THEN GOTO ERROR
$      INQUIRE FILE "File to type"
$      TYPE 'FILE'
$      GOTO GET_COM_LOOP 
��

�⽫�滻���д���:


$ WRITE SYS$OUTPUT "This is the TYPE section."

����: CLEANUP.COM �������

����������ɵ� CLEANUP.COM ������̵�����:


$ GET_COM_LOOP:
$    INQUIRE COMMAND -
     "Enter command (DELETE, DIRECTORY, EXIT, PRINT, PURGE, TYPE)"
$    IF COMMAND .EQS. "EXIT" THEN GOTO END_LOOP
$!
$!Execute if user entered DELETE
$ DELETE:
$       IF COMMAND .NES. "DELETE" THEN GOTO DIRECTORY
$       INQUIRE FILE "File to delete? "
$       DELETE 'FILE'
$       GOTO GET_COM_LOOP
$!
$!Execute if user entered DIRECTORY
$ DIRECTORY:
$       IF COMMAND .NES. "DIRECTORY" THEN GOTO PRINT
$       DIRECTORY
$       GOTO GET_COM_LOOP
$!
$!Execute if user entered PRINT
$ PRINT:
$       IF COMMAND .NES. "PRINT" THEN GOTO PURGE
$       INQUIRE FILE "File to print? "
$       PRINT SYS$OUTPUT 'FILE'
$       GOTO GET_COM_LOOP
$!
$!Execute if user entered PURGE
$ PURGE:
$       IF COMMAND .NES. "PURGE" THEN GOTO TYPE
$       PURGE
$       GOTO GET_COM_LOOP
$!
$!Execute if user entered TYPE
$ TYPE:
$       IF COMMAND .NES. "TYPE" THEN GOTO ERROR
$       INQUIRE FILE "File to type"
$       TYPE 'FILE'
$       GOTO GET_COM_LOOP
$!
$ ERROR:
$       WRITE SYS$OUTPUT "You entered an invalid command."
$       GOTO GET_COM_LOOP
$!
$ END_LOOP:
$ WRITE SYS$OUTPUT "Directory ''F$DIRECTORY()' has been cleaned."
$
$ EXIT

13.6 ִ���������

Ҫʹ����������У�����ִ������������ִ���������:

  • ����һ�����������
  • ��Զ�̽ڵ���
  • ��Ϊ�������޶��ʸ� DCL ����
  • ������
  • ��Ϊ������ҵ
  • �ڴ��̺ʹŴ�����

���¼�������ÿһ�ַ�����

13.6.1 ���������������ִ���������

ͨ������ִ�й��� (@) ������Դ�һ�����������ִ����һ��������̡�

����������� WRITEDATE.COM ����������� GETDATE.COM:


$! WRITEDATE.COM
$!
$ INQUIRE TIME "What is the current time in hh:mm format?"
$ @GETDATE [JONES.COM]GETDATE.COM

13.6.2 ִ��Զ�̽ڵ��ϵ��������

������ʹ�� TYPE ����ִ����Զ�̽ڵ�����һ���ʻ�����Ŀ¼��������̡�����ִ���������:

  • ��ʾ���ṩ�ط�Χ����ı��� OpenVMS ��ϵͳ�ķ���״̬
  • �г�ע�ᵽԶ�̽ڵ���û�

���� TYPE ����ͺ���Ĵ�ȡ�����ַ�����ʹ�����¸�ʽ:


$ TYPE nodename"username password"::"TASK=command_procedure"

���� username �� password ��Զ�̽ڵ��ʻ����û��������롣

������������ʾע�ᵽ�����������פ����Զ�̽ڵ���û�:


$!SHOWUSERS.COM
$!
$ IF F$MODE() .EQS. "NETWORK" THEN DEFINE/USER SYS$OUTPUT SYS$NET
$ SHOW USERS

�����������У�SHOWUSERS.COM λ�ڽڵ� ORIOLE �ϵ� BIRD �ʻ��Ķ���Ŀ¼�У��������� BOULDER��SHOWUSERS.COM ��Զ�̽ڵ� ORIOLE ִ�� DCL ���� SHOW USERS��TYPE ������ʾ���Ա��ؽڵ��� (������������ type ������ն�)SHOWUSERS.COM �����:


$ TYPE ORIOLE"BIRD BOULDER"::"TASK=SHOWUSERS"

     �� 11-DEC-1999 17:20:13.30 ʱ�� OpenVMS �û�����
               �û����� = 4�������� = 4

 �û���       �ڵ�                 ����     �ӽ���       ����
 FLICKER      AUTOMA                2         1
 ROBIN        FABLES                1         2        1
 DOVE         MURMUR                1
 DUCK         FABLES                1         1

13.6.2.1 ��ȫע������

ʹ�ô���ȡ�����ַ����� TYPE ����ʱ���������뽫�������ն��ϡ�Ҫ��ȡ�ʵ��İ�ȫԤ����ʩ����� 18 ��������

13.6.3 ִ�д� DCL �޶��ʻ�������������

�����Խ���һ��ָ�� DCL ����������޶��ʵ�������̡�����һ��������޶���Ƶ��ʹ����һ����������ʱ������������������õġ�

�ڽ�Ҫ����ָ���޶��ʻ������������������ִ�й������� (@)��

���������̿�������Ϊ LINK ��������һ���޶���:


$! This command procedure contains command
$! qualifiers for the LINK command.
$!
/DEBUG/SYMBOL_TABLE/MAP/FULL/CROSS_REFERENCE

ʹ�� DEFLINK.COM ָ�����޶��ʣ��������������һ������ SYNAPSE.OBJ:


$ LINK SYNAPSE@DEFLINK

���������̿�������Ϊ DCL ����������� CHAP1.TXT��CHAP2.TXT �� CHAP3.TXT:


$! PARAM.COM
$! This command procedure contains a list of
$! parameters that can be used with commands.
$!
CHAP1, CHAP2, CHAP3

���������ָ��������� PARAM ����һ�в����������������У��������� PARAM.COM ���г����ļ���:


$ DIRECTORY/SIZE @PARAM

ע��

ʹ��ִ�й������� (@) ʱ��DCL ������ָ���ļ���Ϊ�������롣


ǰҳ ��ҳ Ŀ¼ ����