@ECHO OFF REM CTONW.BAT - Computer to Network upload script REM Uploads local changes to network share for distribution REM REM Usage: CTONW [target] REM target = COMMON (share with all machines) REM target = MACHINE (machine-specific, default) REM REM Examples: REM CTONW ??? Upload to T:\%MACHINE%\ProdSW and T:\%MACHINE%\LOGS REM CTONW MACHINE ??? Upload to T:\%MACHINE%\ProdSW and T:\%MACHINE%\LOGS REM CTONW COMMON ??? Upload to T:\COMMON\ProdSW (requires confirmation) REM REM Version: 1.2 - DOS 6.22 compatible REM Last modified: 2026-01-19 (Separated test data to LOGS folder for database import) REM REM Changes in v1.2: REM - Test data (.DAT files) now upload to LOGS folder for database import REM - Programs and config remain in ProdSW for software distribution REM - Subdirectory mapping: 8BDATA->8BLOG, DSCDATA->DSCLOG, etc. 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. ECHO Then reboot or run: ECHO SET MACHINE=TS-4R ECHO CTONW ECHO. PAUSE Press any key to exit... GOTO END REM ================================================================== REM STEP 2: Verify T: drive is accessible REM ================================================================== :CHECK_DRIVE REM Test T: drive access by switching to it DIR T:\ >nul IF ERRORLEVEL 1 GOTO NO_T_DRIVE REM Successfully switched to T:, go back to C: C: REM Double-check with NUL device test IF NOT EXIST T:\*.* GOTO NO_T_DRIVE GOTO CHECK_TARGET :NO_T_DRIVE C: ECHO. ECHO [ERROR] T: drive not available ECHO. ECHO Network drive T: must be mapped to \\D2TESTNAS\test ECHO. ECHO Run network startup: ECHO C:\NET\STARTNET.BAT ECHO. ECHO Or map manually: ECHO NET USE T: \\D2TESTNAS\test /YES ECHO. PAUSE Press any key to exit... GOTO END REM ================================================================== REM STEP 3: Determine upload target REM ================================================================== :CHECK_TARGET REM Default target is machine-specific SET TARGET=MACHINE SET TARGETDIR=T:\%MACHINE%\ProdSW SET LOGSDIR=T:\%MACHINE%\LOGS REM Check for COMMON parameter IF "%1"=="COMMON" SET TARGET=COMMON IF "%1"=="common" SET TARGET=COMMON IF "%1"=="Common" SET TARGET=COMMON IF "%TARGET%"=="COMMON" SET TARGETDIR=T:\COMMON\ProdSW REM ================================================================== REM STEP 3.5: Confirm COMMON upload (NEW - v1.1) REM ================================================================== IF NOT "%TARGET%"=="COMMON" GOTO DISPLAY_BANNER ECHO. ECHO ============================================================== ECHO [WARNING] COMMON Upload Confirmation ECHO ============================================================== ECHO. ECHO You are about to upload files to COMMON location. ECHO This will affect ALL DOS machines at Dataforth. ECHO. ECHO Other machines will receive these files on next NWTOC run. ECHO. ECHO Are you sure you want to continue? (Y/N) ECHO. REM Wait for user input using CHOICE (DOS 6.22 compatible) CHOICE /C:YN /N IF ERRORLEVEL 2 GOTO UPLOAD_CANCELLED IF ERRORLEVEL 1 GOTO DISPLAY_BANNER :UPLOAD_CANCELLED ECHO. ECHO [INFO] Upload cancelled by user ECHO. ECHO No files were uploaded to COMMON. ECHO To upload to machine-specific location, run: CTONW ECHO. PAUSE Press any key to exit... GOTO END REM ================================================================== REM STEP 4: Display upload banner REM ================================================================== :DISPLAY_BANNER ECHO. ECHO ============================================================== ECHO Upload: %MACHINE% to Network ECHO ============================================================== ECHO Source: C:\BAT, C:\ATE IF "%TARGET%"=="COMMON" ECHO Target: %TARGETDIR% IF "%TARGET%"=="MACHINE" ECHO Targets: %TARGETDIR% (programs) IF "%TARGET%"=="MACHINE" ECHO %LOGSDIR% (test data) ECHO Target type: %TARGET% ECHO ============================================================== ECHO. REM ================================================================== REM STEP 5: Verify source directories exist REM ================================================================== IF NOT EXIST C:\BAT\NUL GOTO NO_BAT_DIR GOTO CHECK_TARGET_DIR :NO_BAT_DIR ECHO [ERROR] C:\BAT directory not found ECHO. ECHO No files to upload. ECHO. PAUSE Press any key to exit... GOTO END REM ================================================================== REM STEP 6: Create target directories if needed REM ================================================================== :CHECK_TARGET_DIR REM Create machine directory if uploading to machine-specific location IF "%TARGET%"=="MACHINE" IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE% REM Create ProdSW directory IF NOT EXIST %TARGETDIR%\NUL MD %TARGETDIR% REM Verify ProdSW directory was created IF NOT EXIST %TARGETDIR%\NUL GOTO TARGET_DIR_ERROR ECHO [OK] Target directory ready: %TARGETDIR% REM Create LOGS directory for machine-specific uploads IF "%TARGET%"=="MACHINE" IF NOT EXIST %LOGSDIR%\NUL MD %LOGSDIR% IF "%TARGET%"=="MACHINE" IF NOT EXIST %LOGSDIR%\NUL GOTO LOGS_DIR_ERROR IF "%TARGET%"=="MACHINE" ECHO [OK] Logs directory ready: %LOGSDIR% ECHO. REM ================================================================== REM STEP 7: Upload batch files REM ================================================================== ECHO [1/3] Uploading batch files from C:\BAT... REM Backup existing files on network before overwriting ECHO Creating backups on network (.BAK files)... FOR %%F IN (%TARGETDIR%\*.BAT) DO COPY %%F %%~dpnF.BAK >NUL 2>NUL REM Copy batch files to network ECHO Copying files to %TARGETDIR%... XCOPY C:\BAT\*.BAT %TARGETDIR%\ /Y /Q IF ERRORLEVEL 4 GOTO UPLOAD_ERROR_INIT IF ERRORLEVEL 2 GOTO UPLOAD_ERROR_USER IF ERRORLEVEL 1 ECHO [WARNING] No batch files found in C:\BAT IF NOT ERRORLEVEL 1 ECHO [OK] Batch files uploaded ECHO. REM ================================================================== REM STEP 8: Upload programs and config (machine-specific only) REM CHANGED in v1.2: Now excludes DAT files (they go to LOGS) REM ================================================================== IF "%TARGET%"=="COMMON" GOTO SKIP_PROGRAMS ECHO [2/3] Uploading programs and config from C:\ATE... REM Check if ATE directory exists IF NOT EXIST C:\ATE\NUL GOTO NO_ATE_DIR REM Copy programs (.EXE, .BAT, .CFG, etc.) - exclude DAT files ECHO Copying programs to %TARGETDIR%... XCOPY C:\ATE\*.EXE %TARGETDIR%\ /S /Y /Q >NUL 2>NUL XCOPY C:\ATE\*.BAT %TARGETDIR%\ /S /Y /Q >NUL 2>NUL XCOPY C:\ATE\*.CFG %TARGETDIR%\ /S /Y /Q >NUL 2>NUL XCOPY C:\ATE\*.TXT %TARGETDIR%\ /S /Y /Q >NUL 2>NUL ECHO [OK] Programs uploaded to ProdSW ECHO. GOTO UPLOAD_TEST_DATA :NO_ATE_DIR ECHO [INFO] C:\ATE directory not found ECHO Only batch files were uploaded GOTO SKIP_TEST_DATA :SKIP_PROGRAMS ECHO [2/3] Skipping programs/data (COMMON target only gets batch files) ECHO. GOTO SKIP_TEST_DATA REM ================================================================== REM STEP 9: Upload test data to LOGS (NEW in v1.2) REM ================================================================== :UPLOAD_TEST_DATA ECHO [3/3] Uploading test data to LOGS... REM Create log subdirectories IF NOT EXIST %LOGSDIR%\8BLOG\NUL MD %LOGSDIR%\8BLOG IF NOT EXIST %LOGSDIR%\DSCLOG\NUL MD %LOGSDIR%\DSCLOG IF NOT EXIST %LOGSDIR%\HVLOG\NUL MD %LOGSDIR%\HVLOG IF NOT EXIST %LOGSDIR%\PWRLOG\NUL MD %LOGSDIR%\PWRLOG IF NOT EXIST %LOGSDIR%\RMSLOG\NUL MD %LOGSDIR%\RMSLOG IF NOT EXIST %LOGSDIR%\7BLOG\NUL MD %LOGSDIR%\7BLOG REM Upload test data files to appropriate log folders ECHO Uploading test data files... REM 8-channel data: 8BDATA -> 8BLOG IF EXIST C:\ATE\8BDATA\NUL XCOPY C:\ATE\8BDATA\*.DAT %LOGSDIR%\8BLOG\ /Y /Q >NUL 2>NUL REM DSC data: DSCDATA -> DSCLOG IF EXIST C:\ATE\DSCDATA\NUL XCOPY C:\ATE\DSCDATA\*.DAT %LOGSDIR%\DSCLOG\ /Y /Q >NUL 2>NUL REM HV data: HVDATA -> HVLOG IF EXIST C:\ATE\HVDATA\NUL XCOPY C:\ATE\HVDATA\*.DAT %LOGSDIR%\HVLOG\ /Y /Q >NUL 2>NUL REM Power data: PWRDATA -> PWRLOG IF EXIST C:\ATE\PWRDATA\NUL XCOPY C:\ATE\PWRDATA\*.DAT %LOGSDIR%\PWRLOG\ /Y /Q >NUL 2>NUL REM RMS data: RMSDATA -> RMSLOG IF EXIST C:\ATE\RMSDATA\*.* XCOPY C:\ATE\RMSDATA\*.DAT %LOGSDIR%\RMSLOG\ /Y /Q >NUL 2>NUL REM 7-channel data: 7BDATA -> 7BLOG IF EXIST C:\ATE\7BDATA\*.* XCOPY C:\ATE\7BDATA\*.DAT %LOGSDIR%\7BLOG\ /Y /Q >NUL 2>NUL ECHO [OK] Test data uploaded to LOGS (for database import) GOTO UPLOAD_COMPLETE :SKIP_TEST_DATA REM No test data upload for COMMON target GOTO UPLOAD_COMPLETE REM ================================================================== REM STEP 10: Upload complete REM ================================================================== :UPLOAD_COMPLETE ECHO ============================================================== ECHO Upload Complete ECHO ============================================================== ECHO. ECHO Files uploaded to: ECHO %TARGETDIR% (software/config) IF "%TARGET%"=="MACHINE" ECHO %LOGSDIR% (test data for database import) ECHO. IF "%TARGET%"=="COMMON" ECHO [WARNING] Files uploaded to COMMON - will affect ALL machines IF "%TARGET%"=="COMMON" ECHO Other machines will receive these files on next NWTOC ECHO. ECHO Backup files (.BAK) created on network ECHO. IF "%TARGET%"=="MACHINE" ECHO To share these files with all machines, run: IF "%TARGET%"=="MACHINE" ECHO CTONW COMMON ECHO. GOTO END REM ================================================================== REM ERROR HANDLERS REM ================================================================== :TARGET_DIR_ERROR ECHO. ECHO [ERROR] Could not create target directory ECHO Target: %TARGETDIR% ECHO. ECHO Check: ECHO - T: drive is writable ECHO - Sufficient disk space on T: ECHO - Network connection is stable ECHO - Permissions to create directories ECHO. PAUSE Press any key to exit... GOTO END :LOGS_DIR_ERROR ECHO. ECHO [ERROR] Could not create LOGS directory ECHO Target: %LOGSDIR% ECHO. ECHO Check: ECHO - T: drive is writable ECHO - Sufficient disk space on T: ECHO - Network connection is stable ECHO - Permissions to create directories ECHO. PAUSE Press any key to exit... GOTO END :UPLOAD_ERROR_INIT ECHO. ECHO [ERROR] Upload initialization failed ECHO. ECHO Possible causes: ECHO - Insufficient memory ECHO - Invalid path ECHO - Target drive not accessible ECHO - Network connection lost ECHO. PAUSE Press any key to exit... GOTO END :UPLOAD_ERROR_USER ECHO. ECHO [ERROR] Upload terminated by user (Ctrl+C) ECHO. ECHO Upload may be incomplete! ECHO Run CTONW again to complete upload. ECHO. PAUSE Press any key to exit... GOTO END REM ================================================================== REM CLEANUP AND EXIT REM ================================================================== :END REM Clean up environment variables SET TARGET= SET TARGETDIR= SET LOGSDIR=