@ECHO OFF REM CHECKUPD.BAT - Check for available updates without applying them REM Quick status check to see if network has newer files REM REM Usage: CHECKUPD REM REM Checks these sources: REM T:\COMMON\ProdSW\*.bat REM T:\%MACHINE%\ProdSW\*.* REM T:\COMMON\DOS\*.NEW REM REM Version: 1.0 - DOS 6.22 compatible REM Last modified: 2026-01-19 REM ================================================================== REM STEP 1: Verify machine name is set REM ================================================================== IF NOT "%MACHINE%"=="" GOTO CHECK_DRIVE :NO_MACHINE ECHO. ECHO [ERROR] MACHINE variable not set ECHO. ECHO Set MACHINE in AUTOEXEC.BAT: ECHO SET MACHINE=TS-4R ECHO. PAUSE GOTO END REM ================================================================== REM STEP 2: Verify T: drive is accessible REM ================================================================== :CHECK_DRIVE REM Test T: drive access DIR T:\ >nul IF ERRORLEVEL 1 GOTO NO_T_DRIVE C: REM Double-check with NUL device test IF NOT EXIST T:\*.* GOTO NO_T_DRIVE GOTO START_CHECK :NO_T_DRIVE C: ECHO. ECHO [ERROR] T: drive not available ECHO. ECHO Run: C:\NET\STARTNET.BAT ECHO. PAUSE GOTO END REM ================================================================== REM STEP 3: Display check banner REM ================================================================== :START_CHECK ECHO. ECHO ============================================================== ECHO Update Check: %MACHINE% ECHO ============================================================== ECHO. REM Initialize flags (no counters - not critical for functionality) SET COMMON= SET MACHINEFILES= SET SYSFILE= REM ================================================================== REM STEP 4: Check COMMON batch files REM ================================================================== ECHO [1/3] Checking T:\COMMON\ProdSW for batch file updates... IF NOT EXIST T:\COMMON\ProdSW\NUL GOTO NO_COMMON REM Check for files on network FOR %%F IN (T:\COMMON\ProdSW\*.BAT) DO CALL :CHECK_COMMON_FILE %%F IF "%COMMON%"=="" ECHO [OK] No updates in COMMON IF NOT "%COMMON%"=="" ECHO [FOUND] Updates available in COMMON ECHO. GOTO CHECK_MACHINE :NO_COMMON ECHO [SKIP] T:\COMMON\ProdSW not found ECHO. REM ================================================================== REM STEP 5: Check machine-specific files REM ================================================================== :CHECK_MACHINE ECHO [2/3] Checking T:\%MACHINE%\ProdSW for machine-specific updates... IF NOT EXIST T:\%MACHINE%\ProdSW\NUL GOTO NO_MACHINE_DIR REM Check for any files (BAT, EXE, DAT) FOR %%F IN (T:\%MACHINE%\ProdSW\*.*) DO CALL :COUNT_FILE IF "%MACHINEFILES%"=="" ECHO [OK] No updates for %MACHINE% IF NOT "%MACHINEFILES%"=="" ECHO [FOUND] Updates available for %MACHINE% ECHO. GOTO CHECK_SYSTEM :NO_MACHINE_DIR ECHO [SKIP] T:\%MACHINE%\ProdSW not found ECHO. REM ================================================================== REM STEP 6: Check system file updates REM ================================================================== :CHECK_SYSTEM ECHO [3/3] Checking T:\COMMON\DOS for system file updates... IF NOT EXIST T:\COMMON\DOS\NUL GOTO NO_DOS_DIR REM Check for .NEW files IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW SET SYSFILE=FOUND IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW ECHO [FOUND] AUTOEXEC.NEW (system reboot required) IF EXIST T:\COMMON\DOS\CONFIG.NEW SET SYSFILE=FOUND IF EXIST T:\COMMON\DOS\CONFIG.NEW ECHO [FOUND] CONFIG.NEW (system reboot required) IF "%SYSFILE%"=="" ECHO [OK] No system file updates ECHO. GOTO SHOW_SUMMARY :NO_DOS_DIR ECHO [SKIP] T:\COMMON\DOS not found ECHO. REM ================================================================== REM STEP 7: Show summary and recommendations REM ================================================================== :SHOW_SUMMARY REM Determine if any updates found SET HASUPDATES= IF NOT "%COMMON%"=="" SET HASUPDATES=YES IF NOT "%MACHINEFILES%"=="" SET HASUPDATES=YES IF NOT "%SYSFILE%"=="" SET HASUPDATES=YES ECHO ============================================================== ECHO Update Summary ECHO ============================================================== ECHO. ECHO Available updates: IF NOT "%COMMON%"=="" ECHO [FOUND] Common batch files IF "%COMMON%"=="" ECHO [OK] Common batch files IF NOT "%MACHINEFILES%"=="" ECHO [FOUND] Machine-specific files IF "%MACHINEFILES%"=="" ECHO [OK] Machine-specific files IF NOT "%SYSFILE%"=="" ECHO [FOUND] System files IF "%SYSFILE%"=="" ECHO [OK] System files ECHO. REM Provide recommendation IF "%HASUPDATES%"=="" GOTO NO_UPDATES_AVAILABLE ECHO Recommendation: ECHO Run NWTOC to download and install updates ECHO. IF NOT "%SYSFILE%"=="" ECHO [WARNING] System file updates will require reboot IF NOT "%SYSFILE%"=="" ECHO. GOTO END :NO_UPDATES_AVAILABLE ECHO Status: All files are up to date ECHO. GOTO END REM ================================================================== REM HELPER SUBROUTINES REM ================================================================== :CHECK_COMMON_FILE REM Check if network file is newer than local file REM %1 = network file path (e.g., T:\COMMON\ProdSW\NWTOC.BAT) REM Extract filename from path SET NETFILE=%1 SET FILENAME=%~nx1 REM Check if local file exists IF NOT EXIST C:\BAT\%FILENAME% SET COMMON=FOUND IF NOT EXIST C:\BAT\%FILENAME% GOTO CHECK_COMMON_DONE REM Both files exist - compare using XCOPY /D REM Create temp directory for test IF NOT EXIST C:\TEMP\*.* MD C:\TEMP REM Try to copy with /D (only if newer) XCOPY %NETFILE% C:\TEMP\ /D /Y >NUL 2>NUL IF NOT ERRORLEVEL 1 SET COMMON=FOUND REM Clean up IF EXIST C:\TEMP\%FILENAME% DEL C:\TEMP\%FILENAME% :CHECK_COMMON_DONE GOTO END_SUBROUTINE :COUNT_FILE REM Flag that machine-specific files exist SET MACHINEFILES=FOUND GOTO END_SUBROUTINE :END_SUBROUTINE REM Return point for all subroutines (replaces :EOF) REM ================================================================== REM CLEANUP AND EXIT REM ================================================================== :END REM Clean up environment variables SET COMMON= SET MACHINEFILES= SET SYSFILE= SET HASUPDATES= SET NETFILE= SET FILENAME=