'=========================================================================== ' Subject: SELECTED BATCH MAKER Date: 12-03-98 (18:05) ' Author: Fred Buffington Code: QB, QBasic, PDS ' Origin: oasys@nstar.net Packet: DOS.ABC '=========================================================================== DECLARE FUNCTION min% (aa%, bb%) REM -- execbat REM -- to create a selected.exec type batch file in dos 1 COLOR 15, 1 CLS PRINT "EXECBAT -- File Processing Batch interface" appnd% = 0 REM -- GET FILE NAME(S) LOCATE 4, 1 ' LINE INPUT "Enter directory parameter (wildcards ok, H=HELP) ", parm1$ msg$ = "Enter directory parameter (wildcards ok, H=HELP) " PRINT msg$; DO WHILE zz$ = "": zz$ = INKEY$: WEND IF zz$ = CHR$(13) THEN EXIT DO IF UCASE$(zz$) = "H" AND parm1$ = "" THEN GOSUB help CLS GOTO 1 END IF IF zz$ > CHR$(28) THEN parm1$ = parm1$ + zz$: PRINT zz$; IF zz$ = CHR$(8) THEN IF LEN(parm1$) <= 1 THEN parm1$ = "": LOCATE 4, 1 + LEN(msg$) ELSE parm1$ = LEFT$(parm1$, LEN(parm1$) - 1) LOCATE 4, 1 + LEN(msg$): PRINT SPACE$(20) LOCATE 4, 1: PRINT msg$; parm1$; END IF zz$ = "" END IF IF zz$ = CHR$(27) THEN CLOSE : SYSTEM: 'CHAIN "PRMENU" zz$ = "" LOOP ll% = INSTR(UCASE$(parm1$), "ECHO OFF") IF ll% > 0 THEN parm1$ = MID$(parm1$, 1, ll% - 1): no.echo% = -1 REM -- CHECK FOR KEYWORD APPEND IF RTRIM$(parm1$) = "" THEN CLOSE : SYSTEM IF INSTR(UCASE$(parm1$), " |MORE") > 0 THEN ll% = INSTR(UCASE$(parm1$), " |MORE") and.more% = -1 parm1$ = MID$(parm1$, 1, ll% - 1) + MID$(parm1$, ll% + 6) END IF IF INSTR(UCASE$(parm1$), " APPEND") > 0 THEN appnd% = INSTR(UCASE$(parm1$), " APPEND") IF INSTR(UCASE$(parm1$), " PAUSE") > 0 THEN paus% = INSTR(UCASE$(parm1$), " PAUSE") M% = INSTR(UCASE$(parm1$), " ") ' IF appnd% AND paus% = 0 THEN paus% = appnd% ' IF paus% AND appnd% = 0 THEN appnd% = paus% '' IF l% > 0 THEN parm1$ = LEFT$(parm1$, l% - 1): APPND% = -1 IF M% > 0 AND (appnd% OR paus%) THEN parm1$ = LEFT$(parm1$, min(appnd%, paus%)) REM -- START PRINT : PRINT "Creating Selected.Bat" OUT.FILE$ = "selected.fil": redirect$ = ">" REM -- NOT NEEDED IF APPND% THEN redirect$ = ">": OUT.FILE$ = "Selected.app" ELSE redirect$ = ">": OUT.FILE$ = "selected.fil" SHELL "Dir /b " + parm1$ + " " + redirect$ + " " + OUT.FILE$ REM -- WRITE TO SELECTED.BAT OPEN OUT.FILE$ FOR INPUT AS #1 IF appnd% THEN OPEN "selected.bat" FOR APPEND AS #2 ELSE OPEN "selected.bat" FOR OUTPUT AS #2 IF no.echo% = 0 THEN IF appnd% = 0 THEN PRINT #2, "@echo off" END IF WHILE NOT EOF(1) LINE INPUT #1, ll$ IF no.echo% = 0 THEN IF INSTR(ll$, ".BAS") = 0 THEN PRINT #2, "ECHO " + ll$: IF paus% THEN PRINT #2, "pause " END IF xx$ = "CALL %1 " + ll$ + " %2 %3 %4 %5 %6 %7 %8" 'IF and.more% THEN xx$ = xx$ + " |more" PRINT #2, xx$ IF paus% THEN PRINT #2, "pause" WEND REM -- CLOSE FILES, ERASE OUT.FILE$ (SELECTED.FIL) CLOSE and.more% = 0 KILL OUT.FILE$ PRINT "Selected.bat is now ready for execution" PRINT "Do you want to edit the file ? "; : INPUT "", xx$ IF UCASE$(xx$) = "Y" THEN SHELL "Edit Selected.Bat" SYSTEM help: CLS PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT "³EXECBAT - Selected Batch Maker ³" PRINT "³Makes a batch file called Selected.Bat to be used for processing ³" PRINT "³files specified here using the DIR /b command (switches OK). ³" PRINT "³ ³" PRINT "³Syntax: ³" PRINT "³filename.ext [PAUSE] [APPEND] ³" PRINT "³ ³" PRINT "³filename = file name to be included in batch file for processing ³" PRINT "³ (wildcard ok) ³" PRINT "³.ext = file extension (wildcard ok) ³" PRINT "³PAUSE = insert the batch command pause after each line ³" PRINT "³APPEND = append the files here to Selected.Bat already existing ³" PRINT "³Example: Want to list all text files on the screen ³" PRINT "³ syntax: *.txt PAUSE ³" PRINT "³ then from the prompt > you would enter: >selected type ³" PRINT "³ suggestion: if you are going to use selected type, make a bat file ³" PRINT "³ called list.bat that does type %1 |more then use ³" PRINT "³ selected list instead of selected type. (the |more does ³" PRINT "³ not work as a parameter for this command). ³" PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" zz$ = "": WHILE zz$ = "": zz$ = INKEY$: WEND: zz$ = "": parm1$ = "" RETURN DEFINT A-Z FUNCTION min (aa, bb) IF aa < bb THEN zz = bb IF bb < aa THEN zz = aa IF zz = 0 AND aa <> 0 THEN zz = aa IF zz = 0 AND bb <> 0 THEN zz = bb min = zz END FUNCTION