  Logical names and search lists? 
 The Question is:
 
I have a three logicals defined as follows:
 
$ DEFINE/SYS/EXEC PFS_ROOT PFS_SPECIFIC:,PFS_COMMON:
$ DEFINE/SYS/EXEC PFS_COMMON DSA1:[PFS.COMMON.]/TRANS=(CONC,TERM)
$ DEFINE/SYS/EXEC PFS_SPECIFIC DSA1:[PFS.PIXIE.]/TRANS=(CONC,TERM)
 
A test procedure has been created - PFS_SPECIFIC:[000000]TEST.COM as follows:
 
$ WRITE SYS$OUTPUT F$ENVIRONMENT("PROCEDURE")
$ EXIT
 
When run interactively (@PFS_ROOT:[000000]TEST), the procedure writes:
 
PFS_ROOT:[000000]TEST.COM;1
 
When run in batch, the procedure writes:
 
U4:[PFS.PIXIE]TEST.COM;1
 
I assume this is happening because the SUBMIT command translates any logicals
 included in the filespec so the procedure when run has no knowledge of the
 logicals being included in the filespec parameter.
 
Is there any possible workaround?
 
Thanks for any help!
 
 The Answer is:
 
  As it is clear you are looking at the system logical names as
  an example, look carefully at the options defined for each of
  the three following system logical names:
 
    SHOW LOGICAL SYS$SYSROOT/FULL
    SHOW LOGICAL SYS$COMMON/FULL
    SHOW LOGICAL SYS$SPECIFIC/FULL
 
  In particular, look at the logical name options on SYS$SYSROOT,
  and compare these against the (different) options you are using.
 
