%META:TOPICINFO{author="ChrisBartram" date="1149893736" format="1.1" version="1.1"}% %META:TOPICPARENT{name="Hp3000MpexXeqs"}%
PARM CMD=?,FILESET=@,PROMPT=YESY,TEMPWORK=EXTEMP
## EX.XEQ COMMAND FILE COPIED FROM INTERACT MAGAZINE
## H.G.ULRICH IAGB
## ENTERED BY DMG
IF "!CMD"="?"
ECHO EX Command File.
ECHO
ECHO Description - EXecutes an MPE file command against a set of files.
ECHO
ECHO Syntax :
ECHO EX (MPE Command),(File set),(verify prompt),(work file name)
ECHO
ECHO Parms:
ECHO MPE Command - Any mpe command meant to be issued against a file
ECHO (i.e. PRINT, PURGE, RELEASE, SECURE ..etc)
ECHO File Set - A file set meant to be used by the LISTF or
ECHO LISTFILE command (default = @)
ECHO Verify Prompt - Prompt for each command execution
ECHO Work File Name - Name of temporary file used (default EXTEMP)
ECHO
ECHO Examples :
ECHO EX PURGE @.TEMPDATA (purges all files in TEMPDATA, prompts first)
ECHO EX RELEASE @ NO (Releases all files with out prompting)
ECHO EX HELP @.CMD NO (Lists all files in the CMD group)
ECHO EX PRINT @.SOURCE (Prints all files in the SOURCE group)
RETURN
ENDIF
ERRCLEAR
IF FINFO("!TEMPWORK","EXISTS") THEN
INPUT _EX_RESP," Temporary file !TEMPWORK already exists, OK to purge? "
If str(ltrim(rtrim(ups(_EX_RESP))),1,1)='Y'
ERRCLEAR
PURGE !TEMPWORK,TEMP>$null
IF CIERROR = 383
ECHO The file !TEMPWORK does not exist in the temporary domain.
ECHO This could be a permanent file with the same name.
ECHO
SETVAR _EX_RESP ' '
INPUT _EX_RESP, 'OK to purge the permanent file !TEMPWORK? '
If str(ltrim(rtrim(ups(_EX_RESP))),1,1)='Y'
PURGE !TEMPWORK
ENDIF
ENDIF
ELSE
ECHO Temporary file !TEMPWORK already exists, EX canceled.
ECHO To restart EX, specify a custom work file or answer YES
ECHO in reponse to the PURGE request.
ECHO
RETURN
ENDIF
ENDIF
ERRCLEAR
FILE !TEMPWORK;MSG
CONTINUE
LISTFILE !FILESET,QUALIFY > *!TEMPWORK
IF CIERROR <> 0 OR HPCIERR <> 0
ECHO LISTFILE !FILESET,QUALIFY
IF HPCIERRCOL > 0 THEN
ECHO ![RPT(" ",HPCIERRCOL-1)+"^"]
ENDIF
ECHO !HPCIERRMSG
RESET !TEMPWORK
PURGE !TEMPWORK,TEMP
RETURN
ENDIF
RESET !TEMPWORK
WHILE FINFO("!TEMPWORK","EOF")>0 DO
INPUT _EX_NEXT "NO" THEN
INPUT _EX_YES;PROMPT="!CMD !_EX_NEXT (Y/N) ? >"
ELSE
SETVAR _EX_YES "Y"
ECHO !CMD !_EX_NEXT
ENDIF
IF UPS(_EX_YES)="Y" THEN
ERRCLEAR
CONTINUE
!CMD !_EX_NEXT
IF CIERROR <> 0 OR HPCIERR <> 0
ECHO !CMD !_EX_NEXT FAILED RESTART ATTEMPTED
ENDIF
ELSE
ECHO !CMD !_EX_NEXT BYPASSED
ENDIF
ENDWHILE
DELETEVAR _EX_@
PURGE !TEMPWORK,TEMP
-- Main.ChrisBartram - 09 Jun 2006