COLOR 17, 15: VIEW PRINT: CLS : COLOR , 10 target$ = "\XCOPIES\": length = LEN(target$) PRINT SPC(31); "ECHO FILES & PATHS"; SPACE$(31) OPEN "C:\CLU\DIR-LIST" FOR INPUT AS #1 FOR i = 1 TO 4: LINE INPUT #1, tmp$: NEXT i CLOSE #1: path2$ = MID$(tmp$, 15) 'Path to target IF LEN(path2$) > 3 THEN path2$ = path2$ + "\" OPEN "C:\CLU\SOURCE" FOR INPUT AS #2: i = 0 DO: i = i + 1: LINE INPUT #2, tmp$ 'Foldername(s) IF i = 3 THEN 'Line 3 is path to source path1$ = tmp$: GOSUB VerifyPaths ELSEIF tmp$ = "" THEN 'The line is blank EXIT DO 'Get no file names below blank line ELSEIF i > 3 AND LEFT$(tmp$, 1) <> " " THEN GOSUB UseFileName 'File name is flush left END IF 'Skip all file names preceded by space LOOP UNTIL EOF(2) CLOSE #2 PRINT SPC(9);"ECHO Finished! Match Files Have Been Xcopied Y/N"; SPC(9); press$ = UCASE$(INPUT$(1)) IF press$ = "Y" THEN 'Match files using MULTI.BAS cmd$ = "DIR " + file2$ + " /A-D >C:\CLU\DIR-LIST" GOSUB ExecuteCommandLine: RUN "C:\CLU\MULTI.BAS" ELSE KILL "C:\CLU\SOURCE" 'Finished with this END IF: SYSTEM 'Finished-Close screen VerifyPaths: valid$ = "YES" PRINT "Source="; path1$: PRINT "Target="; path2$ PRINT STRING$(80, 205) IF UCASE$(RIGHT$(path1$, length)) = target$ THEN valid$ = "NO": COLOR 14, 12 PRINT "ERROR Source MUST NOT end ..." + target$ END IF IF UCASE$(RIGHT$(path2$, length)) <> target$ THEN valid$ = "NO": COLOR 14, 12 PRINT "ERROR Target MUST end ..." + target$ END IF IF valid$ = "NO" THEN PRINT "PressAnyKey ": press$ = INPUT$(1) CLOSE #2: KILL "C:\CLU\SOURCE": SYSTEM 'Close END IF RETURN UseFileName: 'Uses only flush left files filename$ = tmp$: GOSUB MakeFiles: c1 = CSRLIN cmd$ = "DIR /A-D " + file1$ + " |FIND.EXE /I " + CHR$(34) + filename$ + CHR$(34) GOSUB ExecuteCommandLine: c2 = CSRLIN cmd$ = "DIR /A-D " + file3$ + " |FIND.EXE /I " + CHR$(34) + filename$ + CHR$(34) GOSUB ExecuteCommandLine: c3 = CSRLIN LOCATE c1, 1: PRINT "SizeDateTimeFile" IF SCREEN(c2, 13) = 32 THEN LOCATE c2, 1: PRINT "Replace If OLDER" ELSE LOCATE c2, 1: PRINT "New Path\File Can Be Made" END IF: LOCATE c3, 1 PRINT "Do You Want To ECHO The Path\File Y/N ? "; press$ = UCASE$(INPUT$(1)) IF press$ = "Y" THEN PRINT "YES" cmd$ = "C:\Windows\Command\Xcopy.exe " + file1$ + " " + file2$ + " /D/F/H/K/R/-Y" GOSUB ExecuteCommandLine ELSE PRINT "NO" END IF IF CSRLIN >= 38 THEN 'Five Lines For Next File FOR j = 1 TO 5: COLOR , 15: PRINT SPACE$(80) NEXT j: LOCATE CSRLIN - 5, 1: COLOR , 10 END IF: PRINT STRING$(80, 205) RETURN MakeFiles: file1$ = CHR$(34) + path1$ + filename$ + CHR$(34) tp$ = path2$ + LEFT$(path1$, 1) + MID$(path1$, 3) file2$ = CHR$(34) + tp$ + CHR$(34) file3$ = CHR$(34) + tp$ + filename$ + CHR$(34) RETURN ExecuteCommandLine: 'Put cmd$ into a batch program OPEN "C:\CLU\TEMP.BAT" FOR OUTPUT AS #1 PRINT #1, "@echo off": PRINT #1, cmd$ CLOSE #1: SHELL "C:\CLU\TEMP.BAT" 'Run batch prog KILL "C:\CLU\TEMP.BAT" 'Delete batch program RETURN