  DCL Command Input Processing, Redirection? 
 The Question is:
 
We are having problems with some command procedures that are submitted to batch
 queues.  Everything runs ok, but there are errors where the data sent to the
 program invoked is interpreted again as a DCL command.  These are the error
 lines from the log fil
e:
 
 %DCL-W-IVVERB, unrecognized command verb - check validity and spelling
  \3\
 %DCL-W-IVVERB, unrecognized command verb - check validity and spelling
  \TXT\
 %DCL-W-ABVERB, ambiguous command verb - supply more characters
  \END\
 %DCL-W-ABVERB, ambiguous command verb - supply more characters
  \END\
 %DCL-W-IVVERB, unrecognized command verb - check validity and spelling
  \BYE\
   KEITH        job terminated at  2-AUG-2000 10:16:38.95
 
  Accounting information:
   Buffered I/O count:                153      Peak working set size:       4960
   Direct I/O count:                  167      Peak virtual size:         172592
   Page faults:                       670      Mounted volumes:                0
   Charged CPU time:        0 00:00:01.48      Elapsed time:       0 00:00:02.80
 
 
This is the command procedure that produced the errors:
$! Invoke a command procedure which defines some logicals
$ SS GF
$! invoke a command procedure which starts a program, followed by data for
$! the program
$ @SYS$SYSDEVICE:[DOLLARS.COM]STD_RD.COM
 
TXT
END
END
BYE
$ EXIT
 
 
This is STD_RD.COM:
$ GOTO SKIP_REV
$!******************************************************************************
$!    !! PLEASE DO NOT DEFINE SYS$PRINT? OR SYS$QUEUE? IN THIS COM FILE !!
$!    !! PLEASE DO NOT DEFINE SYS$PRINT? OR SYS$QUEUE? IN THIS COM FILE !!
$!******************************************************************************
$! REVISION LOG (newest entries first, please) --
$!
$! SJM, 1/26/94
$!     Removed DEFINEs of SYS$PRINT? and SYS$QUEUE?.  This is now done in
$! SYLOGIN, and any re-defines in systems/areas that captive USWFS users access
$! will cause trouble.
$!******************************************************************************
$ SKIP_REV:
 
$	! KDK 11/16/99 **************************************************
$	!	Set logicals to point to PRODUCTION
$	!****************************************************************
 
$	DEF_CMD		:= DEFINE/NOLOG
 
$	DEF_CMD		SFFA_FSSCR_DATA		'F$LOG("PPRG")
$	DEF_CMD		SFFA_FSSAM_PROG		'F$LOG("PPRG")
$	DEF_CMD		SFFA_FSSDF_DATA		'F$LOG("PPRG")
$	DEF_CMD		SFFA_FSSAM_DATA		'F$LOG("PDAT")
$	DEF_CMD		SFFA_FSSAM_COM		'F$LOG("PPRG")
$	DEF_CMD		FSD$PROGRAMS		'F$LOG("PPRG")
$	DEF_CMD		FSD$CUSTOM		'F$LOG("PPRG")
$	DEF_CMD		FSD$DATA		'F$LOG("PDAT")
$    	DEF_CMD		FSD$SCRATCH		'F$LOG("PSCR")
 
$	PROG*RAMS	:== SET DEFAULT 'F$LOG("FSD$PROGRAMS")
$	DATA		:== SET DEFAULT 'F$LOG("FSD$DATA")
$	SCR*ATCH	:== SET DEFAULT 'F$LOG("FSD$SCRATCH")
 
$	! END KDK *******************************************************
 
$ SFFA_RUN_CMD := 'F$ENVIRONMENT("PROCEDURE")'
$ JUNK := 'F$PARSE(SFFA_RUN_CMD,,,"VERSION")'
$ JUNK = F$LOCATE(JUNK,SFFA_RUN_CMD)
$ SFFA_RUN_CMD := $@'F$EXTRACT(0,JUNK,SFFA_RUN_CMD)'
$ save_dir = f$environment("default")
$ SCR
$ define/nolog sys$input sys$command
$ on control_y then goto error_handler
$ IF F$MODE() .EQS. "INTERACTIVE" THEN set noon
$ run fsd$programs:dollars
$ if .not. $status then goto error_handler
$ set on
$ set default 'save_dir'
$ exit
$ error_handler:
$ set on
$ run fsd$programs:reset_port
$ set default 'save_dir'
$ exit
 
 
We have successfully used these command procedures on VAX/VMS V5.5-2 and
 OpenVMS Alpha versions prior to v7.2, but we get the errors when we run on v7.2.
 
Thanks for any assistance you can give us.
 
 The Answer is:
 
  To re-state the problem, the command or utility is clearly not
  processing the data and thus DCL is finding the data in the
  command stream and (correctly) reporting an error.
 
  DCL command procedures do not normally read data from the command
  input stream, and also typically do not attempt to alter the DCL
  command input stream in operation at a different command level.
 
  The OpenVMS Wizard would suggest relocating the necessary data for
  the image into a separate file, or using the PIPE command.
 
