@ECHO OFF REM Network to Computer - Download software updates from network to local C: drive REM Updates: T:\COMMON\ProdSW -> C:\BAT, T:\%MACHINE%\ProdSW -> C:\BAT and C:\ATE REM Version: 2.5 - Replaced XCOPY with simple COPY (more reliable in DOS 6.22) REM Last modified: 2026-01-20 REM Verify MACHINE environment variable is set IF NOT "%MACHINE%"=="" GOTO CHECK_DRIVE ECHO. ECHO [ERROR] MACHINE variable not set ECHO. ECHO MACHINE must be set in AUTOEXEC.BAT ECHO Run DEPLOY.BAT to configure this machine ECHO. PAUSE GOTO END :CHECK_DRIVE REM Verify T: drive is accessible REM DOS 6.22: Direct file test is most reliable IF NOT EXIST T:\*.* GOTO NO_T_DRIVE GOTO START_UPDATE :NO_T_DRIVE C: ECHO. ECHO [ERROR] T: drive not available ECHO. ECHO Network drive must be mapped to \\D2TESTNAS\test ECHO Run: C:\STARTNET.BAT ECHO. PAUSE GOTO END :START_UPDATE ECHO. ECHO ============================================================== ECHO Download Updates: %MACHINE% from Network ECHO ============================================================== ECHO Source: T:\COMMON and T:\%MACHINE% ECHO Target: C:\BAT, C:\ATE, C:\NET ECHO ============================================================== ECHO. REM Verify update directories exist on network REM DOS 6.22: Check for files in ProdSW, not empty COMMON directory IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_PRODSW REM Machine-specific directory is optional IF NOT EXIST T:\%MACHINE%\*.* GOTO SKIP_MACHINE_CHECK IF NOT EXIST T:\%MACHINE%\ProdSW\*.* GOTO SKIP_MACHINE_CHECK GOTO UPDATE_BATCH_FILES :NO_PRODSW ECHO [ERROR] T:\COMMON\ProdSW directory not found ECHO Update directory is missing ECHO. PAUSE GOTO END :SKIP_MACHINE_CHECK ECHO [INFO] T:\%MACHINE%\ProdSW not found - skipping machine-specific updates ECHO. :UPDATE_BATCH_FILES ECHO [1/4] Updating batch files from T:\COMMON\ProdSW... REM Create C:\BAT directory if needed IF NOT EXIST C:\BAT\*.* MD C:\BAT REM Backup existing batch files before update ECHO Creating backups (.BAK files)... FOR %%F IN (C:\BAT\*.BAT) DO COPY %%F %%~dpnF.BAK >NUL 2>NUL REM Copy batch files from COMMON (simple COPY, not XCOPY) ECHO Copying updated files... COPY T:\COMMON\ProdSW\*.BAT C:\BAT /Y >NUL IF ERRORLEVEL 1 GOTO UPDATE_ERROR_INIT ECHO [OK] Batch files updated from COMMON ECHO. :UPDATE_MACHINE_FILES ECHO [2/4] Updating machine-specific files from T:\%MACHINE%\ProdSW... REM Check if machine-specific directory exists IF NOT EXIST T:\%MACHINE%\ProdSW\*.* GOTO SKIP_MACHINE_FILES REM Create directories if needed IF NOT EXIST C:\BAT\*.* MD C:\BAT IF NOT EXIST C:\ATE\*.* MD C:\ATE REM Copy batch files ECHO Copying batch files to C:\BAT... FOR %%F IN (T:\%MACHINE%\ProdSW\*.BAT) DO COPY %%F C:\BAT\ /Y >NUL 2>NUL IF NOT ERRORLEVEL 1 ECHO [OK] Machine-specific batch files updated REM Copy executables ECHO Copying programs to C:\ATE... FOR %%F IN (T:\%MACHINE%\ProdSW\*.EXE) DO COPY %%F C:\ATE\ /Y >NUL 2>NUL IF NOT ERRORLEVEL 1 ECHO [OK] Machine-specific programs updated REM Copy data files ECHO Copying data files to C:\ATE... FOR %%F IN (T:\%MACHINE%\ProdSW\*.DAT) DO COPY %%F C:\ATE\ /Y >NUL 2>NUL IF NOT ERRORLEVEL 1 ECHO [OK] Machine-specific data files updated GOTO CHECK_SYSTEM_FILES :SKIP_MACHINE_FILES ECHO [SKIP] No machine-specific directory ECHO. :CHECK_SYSTEM_FILES ECHO [3/4] Checking for system file updates... REM Check if DOS directory exists on network IF NOT EXIST T:\COMMON\DOS\*.* GOTO NO_SYSTEM_FILES REM Check for AUTOEXEC.NEW or CONFIG.NEW SET SYSUPD=0 IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW SET SYSUPD=1 IF EXIST T:\COMMON\DOS\CONFIG.NEW SET SYSUPD=1 REM If no system updates, continue to network files IF "%SYSUPD%"=="0" GOTO NO_SYSTEM_FILES REM System files need updating - stage them for reboot ECHO [FOUND] System file updates available ECHO Staging AUTOEXEC.BAT and/or CONFIG.SYS updates... ECHO. IF EXIST T:\COMMON\DOS\AUTOEXEC.NEW COPY T:\COMMON\DOS\AUTOEXEC.NEW C:\AUTOEXEC.NEW >NUL IF EXIST T:\COMMON\DOS\CONFIG.NEW COPY T:\COMMON\DOS\CONFIG.NEW C:\CONFIG.NEW >NUL REM Call staging script if it exists IF EXIST C:\BAT\STAGE.BAT GOTO CALL_STAGE ECHO [WARNING] C:\BAT\STAGE.BAT not found ECHO System files copied to C:\AUTOEXEC.NEW and C:\CONFIG.NEW ECHO Manually copy these files after reboot ECHO. GOTO UPDATE_COMPLETE :CALL_STAGE CALL C:\BAT\STAGE.BAT GOTO END :NO_SYSTEM_FILES ECHO [OK] No system file updates ECHO. :CHECK_NET_FILES ECHO [4/4] Checking for network client updates... REM Check if NET directory exists on network IF NOT EXIST T:\COMMON\NET\*.* GOTO NO_NET_FILES REM Backup network client files ECHO Creating backups of C:\NET\... FOR %%F IN (C:\NET\*.DOS) DO COPY %%F %%~dpnF.BAK >NUL 2>NUL REM Copy network files (simple COPY, not XCOPY) ECHO Copying updated network files... COPY T:\COMMON\NET\*.* C:\NET /Y >NUL IF NOT ERRORLEVEL 1 ECHO [OK] Network client files updated GOTO UPDATE_COMPLETE :NO_NET_FILES ECHO [OK] No network client updates ECHO. :UPDATE_COMPLETE ECHO ============================================================== ECHO Update Complete ECHO ============================================================== ECHO. ECHO Files updated from: ECHO T:\COMMON\ProdSW -> C:\BAT ECHO T:\%MACHINE%\ProdSW -> C:\BAT and C:\ATE ECHO. ECHO Backup files (.BAK) created in C:\BAT ECHO. IF "%SYSUPD%"=="1" ECHO [WARNING] Reboot required to apply system changes IF "%SYSUPD%"=="1" ECHO Run REBOOT or press Ctrl+Alt+Del ECHO. GOTO END :UPDATE_ERROR_INIT ECHO. ECHO [ERROR] Update initialization failed ECHO Possible causes: Insufficient memory, invalid path, or drive not accessible ECHO. PAUSE GOTO END :UPDATE_ERROR_USER ECHO. ECHO [ERROR] Update terminated by user (Ctrl+C) ECHO Update may be incomplete - run NWTOC again ECHO. PAUSE GOTO END :END REM Clean up environment variables SET SYSUPD=