$ IF P1.NES."HELP" THEN GOTO SKIP_HELP $! $!------------------------------------------------------------------------------ $! $! © Yezerski Roper Ltd. 1997 $! http://www.yrl.co.uk/ $! $! Please note: You are free to distribute this file provided you don't pretend $! it's yours, and give Yezerski Roper the credit they deserve :) $! $! Yezerski Roper will not accept any responsibility for any $! problems arising from the use of these commands. However, we $! welcome any suggestions and feedback you may have. $!------------------------------------------------------------------------------ $! $ Set VER ! only if P1 = "HELP" $ $!------------------------------------------------------------------------------ $! $!DOC Command file name : MASS_EDIT.COM $! $!DOC Author(s) : Dr John A Fotheringham $!DOC $!DES Command file description $!DES ------------------------ $!DES MASS_EDIT allows bulk editing of VMS files $!DES $!DES Parameters $!DES ---------- $!DES p1 - Filespec or filelist to be editied (must be present before P2) $!DES p2 - (optional) Command file to used $!DES p3 - RECOVER (optional) - do edit as a RECOVERY EDIT $!DES p5 - PROMPT (optinal) - will prompt between each edit $! $!DOC AMENDMENT HISTORY $!DOC ----------------- $!DOC $!DOC Version Date/initials Description $!DOC ------- ------------- ----------- $!DOC 1.00 24-JUN-91/ JAF Initial version. $! $!------------------------------------------------------------------------------ $ $ SET NOVER $ EXIT ! if p1 was "HELP" $ $ SKIP_HELP: $ $ PARAMS = "$''p1'!$''P2'!$''P3'!$''P4!$''P5'!$" $ $ recover = "F" $ if f$type(default_edit).eqs."" then default_edit == "edit/edt" $ ask = "N" $ $ IF F$loc ("$RECOVER!",PARAMS).ne.f$len(PARAMS) $ THEN $ PARAMS = PARAMS - "$RECOVER!" $ recover = "T" $ ENDIF $ $ IF F$loc ("$PROMPT!",PARAMS).ne.f$len(PARAMS) $ THEN $ PARAMS = PARAMS - "$PROMPT!" $ ask = "Y" $ ENDIF $ $ P1 = F$ext (1, f$loc ("!", PARAMS)-1, PARAMS) $ PARAMS = PARAMS - "''p1'" - "$" - "!" $ $ P2 = F$ext (1, f$loc ("!", PARAMS)-1, PARAMS) $ $ ON ERROR THEN GOTO ABSEND $ ON CONTROL_Y THEN GOTO ABSEND $ $ input_file = "F" $ IF P1 .EQS. "" THEN INQUIRE/NOPUNC P1 "Which files are to be edited ? " $ $ if f$locate ("@",p1) .ne. f$length (p1) $ THEN $ $ input_file = "T" $ p1 = F$extract (1, f$length(p1), p1) $ $ ENDIF $ $!! IF P2 .EQS. "" THEN INQUIRE/NOPUNC P2 "Using which command file ? " $ $ IF input_file $ THEN $ open/read listfile 'p1' $ read/end=absend listfile file $ file = f$element(0,";",file) $ ELSE $ FILE = F$SEARCH ("''p1'",1) $ IF FILE.EQS."" THEN GOTO ABSEND $ ENDIF $ $ LOOP: $ $ IF JDBG THEN WRITE SYS$OUTPUT "MASS_EDIT: FILE = """, FILE,"""" $ IF F$LOCATE ("""",FILE).EQ.F$LENGTH(FILE) $ THEN $ if f$search("''file'",2).nes."" $ THEN $ $ IF ask $ THEN $ INQUIRE/NOPUNC GO_ON "Edit ''File' (Y/N/Q/A) [Y] > " $ IF go_on.eqs."Q" THEN GOTO ABSEND $ IF go_on.eqs."N" THEN GOTO get_next_file $ IF go_on.eqs."A" THEN ask = "N" $ ELSE $ if f$locate (".DIR;",file) .nes. f$len(file) .OR. - f$locate (".EXE;",file) .nes. f$len(file) $ THEN $ $ WRITE SYS$OUTPUT "Not allowed to edit ",file $ GOTO get_next_file $ ENDIF $ $ WRITE SYS$OUTPUT "Editing file ", FILE $ ENDIF $ $ if p2.nes. "" $ THEN $ IF recover $ THEN $ semi_col = F$loc (";",file) $ dot_col = semi_col - 1 $ REC_LOOP: $ IF (f$ext (dot_col,1,file).nes.".") $ THEN $ dot_col = dot_col -1 $ goto rec_loop $ ENDIF $ $ recfile = f$ext (0, dot_col, file) + ".JOU" $ $ copy 'p2' 'recfile' $ DEF/NOLOG/USER SYS$INPUT TT: $ DEF/NOLOG/USER SYS$OUTPUT TT: $ 'default_edit'/recover 'file' $ ELSE $ DEF/NOLOG/USER SYS$INPUT TT: $ DEF/NOLOG/USER SYS$OUTPUT TT: $ edit/edt/command='p2' 'file' $ ENDIF $ $ ELSE $ DEF/NOLOG/USER SYS$INPUT TT: $ DEF/NOLOG/USER SYS$OUTPUT TT: $ 'default_edit' 'file' $ ENDIF $ $ ENDIF $ ENDIF $ $ get_next_file: $ $ last_file = f$element(0,";",file) $ $ IF input_file $ THEN $ read/end=absend listfile file $ ELSE $ FILE = F$SEARCH ("''p1'",1) $ IF FILE.EQS."" THEN GOTO ABSEND $ ENDIF $ $ IF JDBG THEN WRITE SYS$OUTPUT "MASS_EDIT: LAST_FILE = """, LAST_FILE,"""" $ IF f$element(0,";",file).nes.last_file THEN GOTO LOOP $ $ ABSEND: $ IF input_file THEN close listfile $ EXIT ! End of MASS_EDIT $