'=========================================================================== ' Subject: PATH CHECK Date: 03-10-96 (01:47) ' Author: Jim Emptage Code: QB, QBasic, PDS ' Origin: 75504.2526@compuserve.com Packet: DOS.ABC '=========================================================================== 'PATHCHK BY ROUGE VALLEY SOFTWARE 1996 75504.2526@COMPUSERVE.COM ' '* Place program anywhere on the C: drive '* It will show your path, and check that all directories exist '* If some directories are no longer valid you will be asked if you '* wish the PATH line in your autoexec.bat file changed to remove them '* A back up of your original autoexec.bat file is [made autoexec.rvs] '* Shareware, all rights reserved '* Please ask permission if distributed in any package that is for sale. ' 'Jim Emptage, Rouge Valley Software CLS COLOR 7, 4 PRINT " ROUGE VALLEY SOFTWARE PATH CHECK (1996) 75504.2526@COMPUSERVE.COM " COLOR 7, 0 OPEN "rvsdrive.dat" FOR OUTPUT AS #2 CLOSE #2 SHELL "cd>rvsdrive.dat" OPEN "rvsdrive.dat" FOR INPUT AS #2 DO UNTIL EOF(2) INPUT #2, CURDRIVE$ LOOP CLOSE #2 PRINT "EXAMINE PATH STATEMENT : Changing to the root drive \" PRINT " : Return to : "; CURDRIVE$; " when done." CHDIR "\" COLOR 7, 1 PRINT " MAKING DOS VERIFIED BACKUP OF AUTOEXEC.BAT > AUTOEXEC.RVS " COLOR 7, 0 SHELL "COPY AUTOEXEC.BAT C:\AUTOEXEC.RVS/V/Y" OPEN "rvstemp.dat" FOR OUTPUT AS #1 CLOSE #1 OPEN "rvstemp.dat" FOR APPEND AS #1 OPEN "autoexec.bat" FOR INPUT AS #2 cnt = 0 DO UNTIL EOF(2) LINE INPUT #2, x$ cnt = cnt + 1 IF UCASE$(MID$(x$, 1, 4)) = "PATH" THEN EXIT DO END IF LOOP CLOSE #2 COLOR 7, 4 PRINT " CURRENT PATH: "; COLOR 7, 0 PRINT RTRIM$(x$) PRINT "Line in AUTOEXEC.BAT: "; cnt; PL = LEN(x$) PRINT " PATH length: "; PL PRINT "[ Note PATH line can only have 127 characters ]" COLOR 7, 1 PRINT " COUNTING DIRECTORIES IN PATH: " COLOR 7, 0 x$ = UCASE$(x$) pcnt = 0 FIRST = INSTR(x$, "C:\") FOR M = FIRST TO PL P$ = MID$(x$, M, 1) IF P$ <> ";" THEN PDIR$ = PDIR$ + P$ ELSE IF RTRIM$(PDIR$) <> "" THEN PRINT " "; PDIR$; " "; PRINT #1, PDIR$ PDIR$ = "" pcnt = pcnt + 1 END IF END IF NEXT IF RTRIM$(PDIR$) <> "" THEN PRINT " "; PDIR$; " "; PRINT #1, PDIR$ PDIR$ = "" pcnt = pcnt + 1 END IF PRINT PRINT pcnt; " DIRECTORIES IN PATH " CLOSE COLOR 7, 4 PRINT " CHECKING THAT ALL DIRECTORIES ARE VALID " COLOR 7, 0 REDIM iv(pcnt) AS STRING ON ERROR GOTO DERR OPEN "RVSTEMP.DAT" FOR INPUT AS #1 IVCNT = 0 DO UNTIL EOF(1) INPUT #1, dc$ dc$ = RTRIM$(dc$) IF MID$(dc$, LEN(dc$), 1) = "\" THEN dc$ = MID$(dc$, 1, LEN(dc$) - 1) END IF CHDIR dc$ 99 IF ed = 1 AND block = 0 THEN COLOR 14, 4 PRINT " INVALID DIRECTORIES FOUND ... [THEY DO NOT EXIST] " COLOR 7, 0 block = 1 END IF IF ed = 1 THEN PRINT " "; dc$; " "; IVCNT = IVCNT + 1 iv(IVCNT) = dc$ ed = 0 END IF LOOP CLOSE CHDIR "\" IF block = 0 THEN COLOR 1, 7 PRINT " NO INVALID DIRECTORIES FOUND ... ALL DIRECTORIES LISTED EXIST ... PASS " COLOR 7, 0 END IF IF IVCNT = 0 THEN GOTO 101 COLOR 7, 1 PRINT PRINT " REMOVE INVALID DIRECTORIES FROM PATH (Y/N) " COLOR 7, 0 88 WHILE INKEY$ <> "" WEND CH$ = UCASE$(INPUT$(1)) SELECT CASE CH$ CASE "Y" OPEN "rvstemp.dat" FOR INPUT AS #1 np$ = "PATH " DO UNTIL EOF(1) LINE INPUT #1, x$ nogo = 0 FOR z = 1 TO IVCNT IF INSTR(UCASE$(x$), iv(z)) > 0 THEN nogo = 1 NEXT IF nogo = 0 THEN np$ = np$ + UCASE$(x$) + ";" END IF LOOP CLOSE COLOR 7, 1 PRINT " UPDATING PATH IN AUTOEXEC.BAT TO: " COLOR 7, 0 PRINT np$ OPEN "rvstemp2.dat" FOR OUTPUT AS #1 OPEN "autoexec.bat" FOR INPUT AS #2 pblock = 0 DO UNTIL EOF(2) LINE INPUT #2, x$ IF UCASE$(MID$(x$, 1, 4)) = "PATH" AND pblock = 0 THEN pblock = 1 PRINT #1, np$ ELSE PRINT #1, x$ END IF LOOP CLOSE KILL "AUTOEXEC.BAT" NAME "RVSTEMP2.DAT" AS "AUTOEXEC.BAT" CASE "N" CASE ELSE SOUND 40, 1 GOTO 88 END SELECT 101 CLOSE KILL "\rvstemp.dat" CHDIR CURDRIVE$ LOCATE 25, 1 COLOR 14, 1 PRINT " FINISHED - PRESS ANY KEY TO EXIT PROGRAM "; COLOR 7, 0 WHILE INKEY$ <> "" WEND DO LOOP WHILE INKEY$ = "" CLS END DERR: IF ed = 0 THEN ed = 1 SELECT CASE ERR CASE 76 SOUND 40, 1 RESUME 99 CASE ELSE PRINT ERR, ERL PRINT "WARNING: UNDETERMINED ERROR" PRINT PRINT "DO NOT USE THE INFORMATION PROVIDED BY THIS PROGRAM" PRINT "CHECK YOUR AUTOEXEC.BAT FILE INCASE OF UNWANTED CHANGES" END SELECT RESUME 101