Complete project organization: move all DOS files to projects/dataforth-dos, create client folders, update Claude config
This commit is contained in:
81
projects/dataforth-dos/batch-files/AUTOEXEC.BAT
Normal file
81
projects/dataforth-dos/batch-files/AUTOEXEC.BAT
Normal file
@@ -0,0 +1,81 @@
|
||||
@ECHO OFF
|
||||
REM Dataforth Test Machine Startup - DOS 6.22
|
||||
REM Automatically runs after CONFIG.SYS during boot
|
||||
REM Version: 3.0 - Auto-update system integrated
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
REM Set machine identity (configured by DEPLOY.BAT)
|
||||
SET MACHINE=TS-4R
|
||||
|
||||
REM Set DOS search path for executables
|
||||
SET PATH=C:\DOS;C:\NET;C:\BAT;C:\BATCH;C:\
|
||||
|
||||
REM Set command prompt to show current directory
|
||||
PROMPT $P$G
|
||||
|
||||
REM Set temporary file directory
|
||||
SET TEMP=C:\TEMP
|
||||
SET TMP=C:\TEMP
|
||||
|
||||
CLS
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Dataforth Test Machine: %MACHINE%
|
||||
ECHO DOS 6.22 with Automatic Update System
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM Create required directories if they don't exist
|
||||
IF NOT EXIST C:\TEMP\*.* MD C:\TEMP
|
||||
IF NOT EXIST C:\BAT\*.* MD C:\BAT
|
||||
IF NOT EXIST C:\BATCH\*.* MD C:\BATCH
|
||||
|
||||
ECHO Starting network client...
|
||||
ECHO.
|
||||
|
||||
REM Start network client and map T: and X: drives
|
||||
IF EXIST C:\STARTNET.BAT CALL C:\STARTNET.BAT
|
||||
|
||||
REM Verify T: drive is accessible
|
||||
IF NOT EXIST T:\*.* GOTO NET_FAILED
|
||||
|
||||
ECHO [OK] Network started
|
||||
ECHO.
|
||||
ECHO Network Drives:
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO X: = \\D2TESTNAS\datasheets
|
||||
ECHO.
|
||||
|
||||
REM Download latest software updates from network
|
||||
ECHO Checking for software updates...
|
||||
IF EXIST C:\BAT\NWTOC.BAT CALL C:\BAT\NWTOC.BAT
|
||||
|
||||
REM Upload test data to network for database import
|
||||
ECHO Uploading test data to network...
|
||||
IF EXIST C:\BAT\CTONW.BAT CALL C:\BAT\CTONW.BAT
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO System Ready
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Available Commands:
|
||||
ECHO UPDATE - Full system backup to T:\%MACHINE%\BACKUP
|
||||
ECHO CHECKUPD - Check for available updates
|
||||
ECHO CTONW - Manual upload to network
|
||||
ECHO NWTOC - Manual download from network
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:NET_FAILED
|
||||
ECHO [ERROR] Network drive mapping failed
|
||||
ECHO T: drive not accessible
|
||||
ECHO.
|
||||
ECHO To start network manually:
|
||||
ECHO C:\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Updates and backups will not work until network is available.
|
||||
ECHO.
|
||||
PAUSE
|
||||
|
||||
:END
|
||||
222
projects/dataforth-dos/batch-files/CHECKUPD.BAT
Normal file
222
projects/dataforth-dos/batch-files/CHECKUPD.BAT
Normal file
@@ -0,0 +1,222 @@
|
||||
@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.3 - Fixed directory checks (use *.* not \NUL for DOS 6.22)
|
||||
REM Last modified: 2026-01-20
|
||||
|
||||
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 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_CHECK
|
||||
|
||||
:NO_T_DRIVE
|
||||
C:
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO Run: C:\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...
|
||||
|
||||
REM DOS 6.22: Check for files, not directory with \NUL
|
||||
IF NOT EXIST T:\COMMON\ProdSW\*.* 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...
|
||||
|
||||
REM DOS 6.22: Check for files, not directory with \NUL
|
||||
IF NOT EXIST T:\%MACHINE%\ProdSW\*.* 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...
|
||||
|
||||
REM DOS 6.22: Check for files, not directory with \NUL
|
||||
IF NOT EXIST T:\COMMON\DOS\*.* 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 - network file available
|
||||
REM NOTE: DOS 6.22 cannot easily compare file dates
|
||||
REM We just check if network file exists (already confirmed above)
|
||||
SET COMMON=FOUND
|
||||
|
||||
: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=
|
||||
268
projects/dataforth-dos/batch-files/CTONW.BAT
Normal file
268
projects/dataforth-dos/batch-files/CTONW.BAT
Normal file
@@ -0,0 +1,268 @@
|
||||
@ECHO OFF
|
||||
REM Computer to Network - Upload local changes and test data to network
|
||||
REM Programs: C:\BAT -> T:\COMMON\ProdSW or T:\%MACHINE%\ProdSW
|
||||
REM Test data: C:\ATE -> T:\%MACHINE%\LOGS (for database import)
|
||||
REM Version: 2.1 - Fixed drive test for DOS 6.22 reliability
|
||||
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 CHECK_TARGET
|
||||
|
||||
: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
|
||||
|
||||
: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 Confirm COMMON upload (affects all machines)
|
||||
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 reboot
|
||||
ECHO.
|
||||
ECHO Continue? (Y/N)
|
||||
ECHO.
|
||||
|
||||
REM Wait for user input (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
|
||||
ECHO.
|
||||
ECHO To upload to machine-specific location, run: CTONW
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
: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 Verify source directories exist
|
||||
IF NOT EXIST C:\BAT\*.* GOTO NO_BAT_DIR
|
||||
GOTO CHECK_TARGET_DIR
|
||||
|
||||
:NO_BAT_DIR
|
||||
ECHO [ERROR] C:\BAT directory not found
|
||||
ECHO No files to upload
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:CHECK_TARGET_DIR
|
||||
REM Create machine directory if uploading to machine-specific location
|
||||
IF "%TARGET%"=="MACHINE" IF NOT EXIST T:\%MACHINE%\*.* MD T:\%MACHINE%
|
||||
|
||||
REM Create ProdSW directory
|
||||
IF NOT EXIST %TARGETDIR%\*.* MD %TARGETDIR%
|
||||
|
||||
REM Verify ProdSW directory was created
|
||||
IF NOT EXIST %TARGETDIR%\*.* 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%\*.* MD %LOGSDIR%
|
||||
IF "%TARGET%"=="MACHINE" IF NOT EXIST %LOGSDIR%\*.* GOTO LOGS_DIR_ERROR
|
||||
IF "%TARGET%"=="MACHINE" ECHO [OK] Logs directory ready: %LOGSDIR%
|
||||
|
||||
ECHO.
|
||||
|
||||
:UPLOAD_BATCH_FILES
|
||||
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
|
||||
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.
|
||||
|
||||
:UPLOAD_PROGRAMS
|
||||
REM Skip programs for COMMON target (batch files only)
|
||||
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\*.* GOTO NO_ATE_DIR
|
||||
|
||||
REM Copy programs (.EXE, .BAT, .CFG) - exclude DAT files (they go to LOGS)
|
||||
ECHO Copying programs to %TARGETDIR%...
|
||||
XCOPY C:\ATE\*.EXE %TARGETDIR%\ /S /Y >NUL 2>NUL
|
||||
XCOPY C:\ATE\*.BAT %TARGETDIR%\ /S /Y >NUL 2>NUL
|
||||
XCOPY C:\ATE\*.CFG %TARGETDIR%\ /S /Y >NUL 2>NUL
|
||||
XCOPY C:\ATE\*.TXT %TARGETDIR%\ /S /Y >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
|
||||
|
||||
:UPLOAD_TEST_DATA
|
||||
ECHO [3/3] Uploading test data to LOGS...
|
||||
|
||||
REM Create log subdirectories
|
||||
IF NOT EXIST %LOGSDIR%\8BLOG\*.* MD %LOGSDIR%\8BLOG
|
||||
IF NOT EXIST %LOGSDIR%\DSCLOG\*.* MD %LOGSDIR%\DSCLOG
|
||||
IF NOT EXIST %LOGSDIR%\HVLOG\*.* MD %LOGSDIR%\HVLOG
|
||||
IF NOT EXIST %LOGSDIR%\PWRLOG\*.* MD %LOGSDIR%\PWRLOG
|
||||
IF NOT EXIST %LOGSDIR%\RMSLOG\*.* MD %LOGSDIR%\RMSLOG
|
||||
IF NOT EXIST %LOGSDIR%\7BLOG\*.* 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\*.* XCOPY C:\ATE\8BDATA\*.DAT %LOGSDIR%\8BLOG\ /Y >NUL 2>NUL
|
||||
|
||||
REM DSC data: DSCDATA -> DSCLOG
|
||||
IF EXIST C:\ATE\DSCDATA\*.* XCOPY C:\ATE\DSCDATA\*.DAT %LOGSDIR%\DSCLOG\ /Y >NUL 2>NUL
|
||||
|
||||
REM HV data: HVDATA -> HVLOG
|
||||
IF EXIST C:\ATE\HVDATA\*.* XCOPY C:\ATE\HVDATA\*.DAT %LOGSDIR%\HVLOG\ /Y >NUL 2>NUL
|
||||
|
||||
REM Power data: PWRDATA -> PWRLOG
|
||||
IF EXIST C:\ATE\PWRDATA\*.* XCOPY C:\ATE\PWRDATA\*.DAT %LOGSDIR%\PWRLOG\ /Y >NUL 2>NUL
|
||||
|
||||
REM RMS data: RMSDATA -> RMSLOG
|
||||
IF EXIST C:\ATE\RMSDATA\*.* XCOPY C:\ATE\RMSDATA\*.DAT %LOGSDIR%\RMSLOG\ /Y >NUL 2>NUL
|
||||
|
||||
REM 7-channel data: 7BDATA -> 7BLOG
|
||||
IF EXIST C:\ATE\7BDATA\*.* XCOPY C:\ATE\7BDATA\*.DAT %LOGSDIR%\7BLOG\ /Y >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
|
||||
|
||||
: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 reboot
|
||||
ECHO.
|
||||
ECHO Backup files (.BAK) created on network
|
||||
ECHO.
|
||||
IF "%TARGET%"=="MACHINE" ECHO To share these files with all machines, run: CTONW COMMON
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:TARGET_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create target directory
|
||||
ECHO Target: %TARGETDIR%
|
||||
ECHO.
|
||||
ECHO Check: T: drive writable, sufficient disk space, stable network
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:LOGS_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create LOGS directory
|
||||
ECHO Target: %LOGSDIR%
|
||||
ECHO.
|
||||
ECHO Check: T: drive writable, sufficient disk space, stable network
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:UPLOAD_ERROR_INIT
|
||||
ECHO.
|
||||
ECHO [ERROR] Upload initialization failed
|
||||
ECHO Possible causes: Insufficient memory, invalid path, or drive not accessible
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:UPLOAD_ERROR_USER
|
||||
ECHO.
|
||||
ECHO [ERROR] Upload terminated by user (Ctrl+C)
|
||||
ECHO Upload may be incomplete - run CTONW again
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET TARGET=
|
||||
SET TARGETDIR=
|
||||
SET LOGSDIR=
|
||||
34
projects/dataforth-dos/batch-files/CTONWTXT.BAT
Normal file
34
projects/dataforth-dos/batch-files/CTONWTXT.BAT
Normal file
@@ -0,0 +1,34 @@
|
||||
@ECHO OFF
|
||||
REM PWR: 2013-02-06
|
||||
ECHO .....................................................
|
||||
ECHO Archiving text datasheet files to %2 on network...
|
||||
ECHO CtoNWtxt.bat > C:\ATE\CtoNWtxt.log
|
||||
ECHO 2013-02-06 Version >> C:\ATE\CtoNWtxt.log
|
||||
ECHO ..................................................... >> C:\ATE\CtoNWtxt.log
|
||||
ECHO Important! This log file is from the previous >> C:\ATE\CtoNWtxt.log
|
||||
ECHO operation since C to Network >> C:\ATE\CtoNWtxt.log
|
||||
ECHO archiving is before text file >> C:\ATE\CtoNWtxt.log
|
||||
ECHO archiving! >> C:\ATE\CtoNWtxt.log
|
||||
ECHO ..................................................... >> C:\ATE\CtoNWtxt.log
|
||||
ECHO Copying from C:\STAGE\*.txt to %2 >> C:\ATE\CtoNWtxt.log
|
||||
IF EXIST C:\STAGE\*.txt GOTO FILEXFER
|
||||
REM IF ERRORLEVEL=1 ECHO No files were found to transfer
|
||||
ECHO No files were found to transfer
|
||||
ECHO No files were found to transfer >> C:\ATE\CtoNWtxt.log
|
||||
GOTO END
|
||||
:FILEXFER
|
||||
IF NOT EXIST %2\serve.sys GOTO NODIR
|
||||
copy C:\STAGE\*.txt %2 >> C:\ATE\CtoNWtxt.log
|
||||
IF ERRORLEVEL=0 ECHO Copy Completed normally
|
||||
DEL C:\STAGE\*.txt >> C:\ATE\CtoNWtxt.log
|
||||
ECHO Network archiving of text datasheet files to %2 done!
|
||||
ECHO .....................................................
|
||||
GOTO END
|
||||
:NODIR
|
||||
ECHO %2\serve.sys not found. >> C:\ATE\CtoNWtxt.log
|
||||
ECHO %2\serve.sys not found. Check Network connection.
|
||||
:END
|
||||
ECHO Network archiving of text datasheet files to %2 done!
|
||||
ECHO .....................................................
|
||||
|
||||
|
||||
189
projects/dataforth-dos/batch-files/DEPLOY.BAT
Normal file
189
projects/dataforth-dos/batch-files/DEPLOY.BAT
Normal file
@@ -0,0 +1,189 @@
|
||||
@ECHO OFF
|
||||
REM One-time deployment script for DOS Update System
|
||||
REM Installs automatic update system on DOS 6.22 machines
|
||||
REM Usage: T:\COMMON\ProdSW\DEPLOY.BAT machine-name
|
||||
REM Example: T:\COMMON\ProdSW\DEPLOY.BAT TS-4R
|
||||
REM Version: 2.0 - Simplified deployment
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
CLS
|
||||
|
||||
REM Check machine name parameter provided
|
||||
IF "%1"=="" GOTO NO_MACHINE_NAME
|
||||
|
||||
REM Save machine name to variable
|
||||
SET MACHINE=%1
|
||||
|
||||
ECHO ==============================================================
|
||||
ECHO DOS Update System - Deployment
|
||||
ECHO ==============================================================
|
||||
ECHO Machine: %MACHINE%
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Installing automatic update system...
|
||||
ECHO.
|
||||
ECHO Files to install:
|
||||
ECHO - AUTOEXEC.BAT (startup configuration)
|
||||
ECHO - NWTOC.BAT (download updates)
|
||||
ECHO - CTONW.BAT (upload test data)
|
||||
ECHO - UPDATE.BAT (full backup)
|
||||
ECHO - CHECKUPD.BAT (check updates)
|
||||
ECHO - STAGE.BAT (system file updates)
|
||||
ECHO - REBOOT.BAT (apply staged updates)
|
||||
ECHO.
|
||||
PAUSE
|
||||
ECHO.
|
||||
|
||||
REM Create C:\BAT directory
|
||||
ECHO [1/3] Creating C:\BAT directory...
|
||||
IF NOT EXIST C:\BAT\*.* MD C:\BAT
|
||||
IF NOT EXIST C:\BAT\*.* GOTO BAT_DIR_ERROR
|
||||
ECHO [OK] C:\BAT directory ready
|
||||
ECHO.
|
||||
|
||||
REM Copy batch files from network to local machine
|
||||
ECHO [2/3] Copying batch files to C:\BAT...
|
||||
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] NWTOC.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CTONW.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] UPDATE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CHECKUPD.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] STAGE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\REBOOT.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] REBOOT.BAT
|
||||
|
||||
ECHO [OK] All batch files installed
|
||||
ECHO.
|
||||
|
||||
REM Install AUTOEXEC.BAT with machine name
|
||||
ECHO [3/3] Installing AUTOEXEC.BAT...
|
||||
|
||||
REM Copy template and modify machine name
|
||||
COPY T:\COMMON\ProdSW\AUTOEXEC.BAT C:\AUTOEXEC.TMP /Y >NUL
|
||||
IF ERRORLEVEL 1 GOTO AUTOEXEC_ERROR
|
||||
|
||||
REM Create new AUTOEXEC with correct machine name
|
||||
REM Filter out existing SET MACHINE line and rebuild with new one
|
||||
ECHO @ECHO OFF > C:\AUTOEXEC.BAT
|
||||
TYPE C:\AUTOEXEC.TMP | FIND /V "@ECHO OFF" | FIND /V "SET MACHINE=" > C:\AUTOEXEC.TM1
|
||||
ECHO REM Dataforth Test Machine Startup - DOS 6.22 >> C:\AUTOEXEC.BAT
|
||||
ECHO REM Automatically runs after CONFIG.SYS during boot >> C:\AUTOEXEC.BAT
|
||||
ECHO REM Version: 3.0 - Auto-update system integrated >> C:\AUTOEXEC.BAT
|
||||
ECHO REM Last modified: 2026-01-19 >> C:\AUTOEXEC.BAT
|
||||
ECHO. >> C:\AUTOEXEC.BAT
|
||||
ECHO REM Set machine identity (configured by DEPLOY.BAT) >> C:\AUTOEXEC.BAT
|
||||
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
||||
ECHO. >> C:\AUTOEXEC.BAT
|
||||
REM Filter out header comment lines using temp files (DOS 6.22 compatible)
|
||||
TYPE C:\AUTOEXEC.TM1 | FIND /V "REM Dataforth" > C:\AUTOEXEC.TM2
|
||||
TYPE C:\AUTOEXEC.TM2 | FIND /V "REM Automatically" > C:\AUTOEXEC.TM3
|
||||
TYPE C:\AUTOEXEC.TM3 | FIND /V "REM Version:" > C:\AUTOEXEC.TM4
|
||||
TYPE C:\AUTOEXEC.TM4 | FIND /V "REM Last modified" > C:\AUTOEXEC.TM5
|
||||
TYPE C:\AUTOEXEC.TM5 | FIND /V "REM Set machine identity" >> C:\AUTOEXEC.BAT
|
||||
|
||||
REM Clean up temp files
|
||||
DEL C:\AUTOEXEC.TMP
|
||||
DEL C:\AUTOEXEC.TM1
|
||||
DEL C:\AUTOEXEC.TM2
|
||||
DEL C:\AUTOEXEC.TM3
|
||||
DEL C:\AUTOEXEC.TM4
|
||||
DEL C:\AUTOEXEC.TM5
|
||||
|
||||
ECHO [OK] AUTOEXEC.BAT installed with MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
|
||||
REM Create machine folder on network for backups
|
||||
IF NOT EXIST T:\%MACHINE%\*.* MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_FOLDER_WARNING
|
||||
ECHO [OK] Network backup folder created: T:\%MACHINE%
|
||||
ECHO.
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:MACHINE_FOLDER_WARNING
|
||||
ECHO [WARNING] Could not create T:\%MACHINE% folder
|
||||
ECHO Backups will not work until this folder exists
|
||||
ECHO.
|
||||
|
||||
:DEPLOYMENT_COMPLETE
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO Deployment Complete!
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Machine: %MACHINE%
|
||||
ECHO.
|
||||
ECHO The automatic update system is now installed.
|
||||
ECHO.
|
||||
ECHO What happens on next reboot:
|
||||
ECHO 1. Network client starts (C:\STARTNET.BAT)
|
||||
ECHO 2. Software updates download automatically (NWTOC)
|
||||
ECHO 3. Test data uploads automatically (CTONW)
|
||||
ECHO 4. System ready for testing
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO REBOOT NOW
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Press Ctrl+Alt+Del to reboot
|
||||
ECHO.
|
||||
ECHO After reboot, the system will be fully operational.
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_MACHINE_NAME
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name not provided
|
||||
ECHO.
|
||||
ECHO Usage: DEPLOY.BAT machine-name
|
||||
ECHO Example: DEPLOY.BAT TS-4R
|
||||
ECHO.
|
||||
ECHO Machine name must match network folder (T:\machine-name\)
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:BAT_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create C:\BAT directory
|
||||
ECHO Insufficient permissions or disk full
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:COPY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to copy files from network
|
||||
ECHO.
|
||||
ECHO Check: T: drive accessible, C: drive has space
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:AUTOEXEC_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not copy AUTOEXEC.BAT template
|
||||
ECHO.
|
||||
ECHO Verify T:\COMMON\ProdSW\AUTOEXEC.BAT exists
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
REM Clean up environment variable
|
||||
SET MACHINE=
|
||||
345
projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT
Normal file
345
projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT
Normal file
@@ -0,0 +1,345 @@
|
||||
@ECHO OFF
|
||||
REM DEPLOY.BAT - One-time deployment script for DOS Update System
|
||||
REM
|
||||
REM Purpose: Installs the new NWTOC update system on DOS 6.22 machines
|
||||
REM Location: Run from T:\COMMON\ProdSW\DEPLOY.BAT
|
||||
REM
|
||||
REM What this does:
|
||||
REM 1. Backs up current AUTOEXEC.BAT
|
||||
REM 2. Prompts for machine name (TS-4R, TS-7A, etc.)
|
||||
REM 3. Updates AUTOEXEC.BAT with MACHINE variable
|
||||
REM 4. Copies update batch files to C:\BAT\
|
||||
REM 5. Runs initial NWTOC to download all updates
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO DOS Update System - One-Time Deployment
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO This script will install the new update system on this machine.
|
||||
ECHO.
|
||||
ECHO What will be installed:
|
||||
ECHO - NWTOC.BAT (Download updates from network)
|
||||
ECHO - CTONW.BAT (Upload changes to network)
|
||||
ECHO - UPDATE.BAT (Full system backup)
|
||||
ECHO - STAGE.BAT (System file staging)
|
||||
ECHO - REBOOT.BAT (Apply updates on reboot)
|
||||
ECHO - CHECKUPD.BAT (Check for updates)
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Verify T: drive is accessible
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [STEP 1/5] Checking network drive...
|
||||
ECHO.
|
||||
|
||||
T: 2>NUL
|
||||
IF ERRORLEVEL 1 GOTO NO_T_DRIVE
|
||||
|
||||
C:
|
||||
IF NOT EXIST T:\NUL GOTO NO_T_DRIVE
|
||||
|
||||
ECHO [OK] T: drive is accessible
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO.
|
||||
GOTO CHECK_DEPLOY_FILES
|
||||
|
||||
:NO_T_DRIVE
|
||||
C:
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO The network drive T: must be mapped to \\D2TESTNAS\test
|
||||
ECHO.
|
||||
ECHO Run network startup first:
|
||||
ECHO C:\NET\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Or map manually:
|
||||
ECHO NET USE T: \\D2TESTNAS\test /YES
|
||||
ECHO.
|
||||
ECHO Then run DEPLOY.BAT again.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Verify deployment files exist on network
|
||||
REM ==================================================================
|
||||
|
||||
:CHECK_DEPLOY_FILES
|
||||
ECHO [STEP 2/5] Verifying deployment files...
|
||||
ECHO.
|
||||
|
||||
IF NOT EXIST T:\COMMON\ProdSW\NWTOC.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CTONW.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\UPDATE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\STAGE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CHECKUPD.BAT GOTO MISSING_FILES
|
||||
|
||||
ECHO [OK] All deployment files found on network
|
||||
ECHO Location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MISSING_FILES
|
||||
ECHO [ERROR] Deployment files not found on network
|
||||
ECHO.
|
||||
ECHO Expected location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO Files needed:
|
||||
ECHO - NWTOC.BAT
|
||||
ECHO - CTONW.BAT
|
||||
ECHO - UPDATE.BAT
|
||||
ECHO - STAGE.BAT
|
||||
ECHO - CHECKUPD.BAT
|
||||
ECHO.
|
||||
ECHO Contact system administrator.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Get machine name from user
|
||||
REM ==================================================================
|
||||
|
||||
:GET_MACHINE_NAME
|
||||
ECHO [STEP 3/5] Configure machine name...
|
||||
ECHO.
|
||||
ECHO Enter this machine's name (e.g., TS-4R, TS-7A, TS-12B):
|
||||
ECHO.
|
||||
ECHO Machine name must match the folder on T: drive.
|
||||
ECHO Example: If this is TS-4R, there should be T:\TS-4R\
|
||||
ECHO.
|
||||
SET /P MACHINE=Machine name:
|
||||
|
||||
REM Validate machine name was entered
|
||||
IF "%MACHINE%"=="" GOTO MACHINE_NAME_EMPTY
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] Machine name: %MACHINE%
|
||||
ECHO.
|
||||
|
||||
REM Verify machine folder exists on network
|
||||
ECHO Checking for T:\%MACHINE%\ folder...
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\NUL GOTO MACHINE_FOLDER_ERROR
|
||||
|
||||
ECHO [OK] Machine folder ready: T:\%MACHINE%\
|
||||
ECHO.
|
||||
GOTO BACKUP_AUTOEXEC
|
||||
|
||||
:MACHINE_NAME_EMPTY
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name cannot be empty
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MACHINE_FOLDER_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create machine folder on network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is writable
|
||||
ECHO - Network connection is stable
|
||||
ECHO - Permissions to create directories
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Backup current AUTOEXEC.BAT and install batch files
|
||||
REM ==================================================================
|
||||
|
||||
:BACKUP_AUTOEXEC
|
||||
ECHO [STEP 4/5] Installing update system files...
|
||||
ECHO.
|
||||
|
||||
REM Backup current AUTOEXEC.BAT
|
||||
IF EXIST C:\AUTOEXEC.BAT (
|
||||
ECHO Backing up AUTOEXEC.BAT...
|
||||
COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF ERRORLEVEL 1 GOTO BACKUP_ERROR
|
||||
ECHO [OK] Backup created: C:\AUTOEXEC.SAV
|
||||
) ELSE (
|
||||
ECHO [WARNING] No existing AUTOEXEC.BAT found
|
||||
)
|
||||
ECHO.
|
||||
|
||||
REM Create C:\BAT directory if it doesn't exist
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
IF NOT EXIST C:\BAT\NUL GOTO BAT_DIR_ERROR
|
||||
|
||||
ECHO Copying update system files to C:\BAT\...
|
||||
|
||||
REM Copy batch files from network to local machine
|
||||
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] NWTOC.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CTONW.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] UPDATE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] STAGE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CHECKUPD.BAT
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] All update system files installed
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BACKUP_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not backup AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Continue anyway? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO END
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BAT_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create C:\BAT directory
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
:COPY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to copy files from network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is accessible
|
||||
ECHO - C: drive has free space
|
||||
ECHO - No file locks on C:\BAT\
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 5: Update AUTOEXEC.BAT with MACHINE variable
|
||||
REM ==================================================================
|
||||
|
||||
:UPDATE_AUTOEXEC
|
||||
ECHO [STEP 5/5] Updating AUTOEXEC.BAT...
|
||||
ECHO.
|
||||
|
||||
REM Check if MACHINE variable already exists in AUTOEXEC.BAT
|
||||
IF EXIST C:\AUTOEXEC.BAT (
|
||||
FIND "SET MACHINE=" C:\AUTOEXEC.BAT >NUL
|
||||
IF NOT ERRORLEVEL 1 GOTO MACHINE_EXISTS
|
||||
)
|
||||
|
||||
REM Append MACHINE variable to AUTOEXEC.BAT
|
||||
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
||||
IF ERRORLEVEL 1 GOTO AUTOEXEC_ERROR
|
||||
|
||||
ECHO [OK] Added to AUTOEXEC.BAT: SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:MACHINE_EXISTS
|
||||
ECHO [WARNING] MACHINE variable already exists in AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Current AUTOEXEC.BAT contains:
|
||||
TYPE C:\AUTOEXEC.BAT | FIND "SET MACHINE="
|
||||
ECHO.
|
||||
ECHO Update MACHINE variable to %MACHINE%? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
ECHO.
|
||||
ECHO Manual edit required:
|
||||
ECHO 1. Edit C:\AUTOEXEC.BAT
|
||||
ECHO 2. Find line: SET MACHINE=...
|
||||
ECHO 3. Change to: SET MACHINE=%MACHINE%
|
||||
ECHO 4. Save and reboot
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:AUTOEXEC_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not update AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO You must manually add this line to C:\AUTOEXEC.BAT:
|
||||
ECHO SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
REM ==================================================================
|
||||
REM DEPLOYMENT COMPLETE
|
||||
REM ==================================================================
|
||||
|
||||
:DEPLOYMENT_COMPLETE
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO Deployment Complete!
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO The DOS Update System has been installed on this machine.
|
||||
ECHO.
|
||||
ECHO Machine name: %MACHINE%
|
||||
ECHO Backup location: T:\%MACHINE%\BACKUP\
|
||||
ECHO Update location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Available Commands:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO NWTOC - Download updates from network
|
||||
ECHO CTONW - Upload local changes to network
|
||||
ECHO UPDATE - Backup entire C: drive to network
|
||||
ECHO CHECKUPD - Check for available updates
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Next Steps:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO 1. REBOOT this machine to activate MACHINE variable
|
||||
ECHO Press Ctrl+Alt+Del to reboot
|
||||
ECHO.
|
||||
ECHO 2. After reboot, run NWTOC to download all updates:
|
||||
ECHO C:\BAT\NWTOC
|
||||
ECHO.
|
||||
ECHO 3. Create initial backup:
|
||||
ECHO C:\BAT\UPDATE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Deployment log saved to: T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO.
|
||||
|
||||
REM Create deployment log
|
||||
ECHO Deployment completed: %DATE% %TIME% > T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Machine: %MACHINE% >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Files installed to: C:\BAT\ >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO AUTOEXEC.BAT backup: C:\AUTOEXEC.SAV >> T:\%MACHINE%\DEPLOY.LOG
|
||||
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET MACHINE=
|
||||
351
projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT
Normal file
351
projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT
Normal file
@@ -0,0 +1,351 @@
|
||||
@ECHO OFF
|
||||
REM DEPLOY.BAT - One-time deployment script for DOS Update System
|
||||
REM
|
||||
REM Purpose: Installs the new NWTOC update system on DOS 6.22 machines
|
||||
REM Location: Run from T:\COMMON\ProdSW\DEPLOY.BAT
|
||||
REM
|
||||
REM What this does:
|
||||
REM 1. Backs up current AUTOEXEC.BAT
|
||||
REM 2. Prompts for machine name (TS-4R, TS-7A, etc.)
|
||||
REM 3. Updates AUTOEXEC.BAT with MACHINE variable
|
||||
REM 4. Copies update batch files to C:\BAT\
|
||||
REM 5. Runs initial NWTOC to download all updates
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO DOS Update System - One-Time Deployment
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO This script will install the new update system on this machine.
|
||||
ECHO.
|
||||
ECHO What will be installed:
|
||||
ECHO - NWTOC.BAT (Download updates from network)
|
||||
ECHO - CTONW.BAT (Upload changes to network)
|
||||
ECHO - UPDATE.BAT (Full system backup)
|
||||
ECHO - STAGE.BAT (System file staging)
|
||||
ECHO - REBOOT.BAT (Apply updates on reboot)
|
||||
ECHO - CHECKUPD.BAT (Check for updates)
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Verify T: drive is accessible
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [STEP 1/5] Checking network drive...
|
||||
ECHO.
|
||||
|
||||
T: 2>NUL
|
||||
IF ERRORLEVEL 1 GOTO NO_T_DRIVE
|
||||
|
||||
C:
|
||||
IF NOT EXIST T:\NUL GOTO NO_T_DRIVE
|
||||
|
||||
ECHO [OK] T: drive is accessible
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO.
|
||||
GOTO CHECK_DEPLOY_FILES
|
||||
|
||||
:NO_T_DRIVE
|
||||
C:
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO The network drive T: must be mapped to \\D2TESTNAS\test
|
||||
ECHO.
|
||||
ECHO Run network startup first:
|
||||
ECHO C:\NET\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Or map manually:
|
||||
ECHO NET USE T: \\D2TESTNAS\test /YES
|
||||
ECHO.
|
||||
ECHO Then run DEPLOY.BAT again.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Verify deployment files exist on network
|
||||
REM ==================================================================
|
||||
|
||||
:CHECK_DEPLOY_FILES
|
||||
ECHO [STEP 2/5] Verifying deployment files...
|
||||
ECHO.
|
||||
|
||||
IF NOT EXIST T:\COMMON\ProdSW\NWTOC.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CTONW.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\UPDATE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\STAGE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CHECKUPD.BAT GOTO MISSING_FILES
|
||||
|
||||
ECHO [OK] All deployment files found on network
|
||||
ECHO Location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MISSING_FILES
|
||||
ECHO [ERROR] Deployment files not found on network
|
||||
ECHO.
|
||||
ECHO Expected location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO Files needed:
|
||||
ECHO - NWTOC.BAT
|
||||
ECHO - CTONW.BAT
|
||||
ECHO - UPDATE.BAT
|
||||
ECHO - STAGE.BAT
|
||||
ECHO - CHECKUPD.BAT
|
||||
ECHO.
|
||||
ECHO Contact system administrator.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Get machine name from user
|
||||
REM ==================================================================
|
||||
|
||||
:GET_MACHINE_NAME
|
||||
ECHO [STEP 3/5] Configure machine name...
|
||||
ECHO.
|
||||
ECHO Enter this machine's name (e.g., TS-4R, TS-7A, TS-12B):
|
||||
ECHO.
|
||||
ECHO Machine name must match the folder on T: drive.
|
||||
ECHO Example: If this is TS-4R, there should be T:\TS-4R\
|
||||
ECHO.
|
||||
SET /P MACHINE=Machine name:
|
||||
|
||||
REM Validate machine name was entered
|
||||
IF "%MACHINE%"=="" GOTO MACHINE_NAME_EMPTY
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] Machine name: %MACHINE%
|
||||
ECHO.
|
||||
|
||||
REM Verify machine folder exists on network
|
||||
ECHO Checking for T:\%MACHINE%\ folder...
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\NUL GOTO MACHINE_FOLDER_ERROR
|
||||
|
||||
ECHO [OK] Machine folder ready: T:\%MACHINE%\
|
||||
ECHO.
|
||||
GOTO BACKUP_AUTOEXEC
|
||||
|
||||
:MACHINE_NAME_EMPTY
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name cannot be empty
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MACHINE_FOLDER_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create machine folder on network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is writable
|
||||
ECHO - Network connection is stable
|
||||
ECHO - Permissions to create directories
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Backup current AUTOEXEC.BAT and install batch files
|
||||
REM ==================================================================
|
||||
|
||||
:BACKUP_AUTOEXEC
|
||||
ECHO [STEP 4/5] Installing update system files...
|
||||
ECHO.
|
||||
|
||||
REM Backup current AUTOEXEC.BAT
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT GOTO NO_AUTOEXEC_BACKUP
|
||||
|
||||
ECHO Backing up AUTOEXEC.BAT...
|
||||
COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF ERRORLEVEL 1 GOTO BACKUP_ERROR
|
||||
ECHO [OK] Backup created: C:\AUTOEXEC.SAV
|
||||
GOTO AUTOEXEC_BACKUP_DONE
|
||||
|
||||
:NO_AUTOEXEC_BACKUP
|
||||
ECHO [WARNING] No existing AUTOEXEC.BAT found
|
||||
|
||||
:AUTOEXEC_BACKUP_DONE
|
||||
ECHO.
|
||||
|
||||
REM Create C:\BAT directory if it doesn't exist
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
IF NOT EXIST C:\BAT\NUL GOTO BAT_DIR_ERROR
|
||||
|
||||
ECHO Copying update system files to C:\BAT\...
|
||||
|
||||
REM Copy batch files from network to local machine
|
||||
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] NWTOC.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CTONW.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] UPDATE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] STAGE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CHECKUPD.BAT
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] All update system files installed
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BACKUP_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not backup AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Continue anyway? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO END
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BAT_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create C:\BAT directory
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
:COPY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to copy files from network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is accessible
|
||||
ECHO - C: drive has free space
|
||||
ECHO - No file locks on C:\BAT\
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 5: Update AUTOEXEC.BAT with MACHINE variable
|
||||
REM ==================================================================
|
||||
|
||||
:UPDATE_AUTOEXEC
|
||||
ECHO [STEP 5/5] Updating AUTOEXEC.BAT...
|
||||
ECHO.
|
||||
|
||||
REM Check if MACHINE variable already exists in AUTOEXEC.BAT
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT GOTO ADD_MACHINE_VAR
|
||||
|
||||
FIND "SET MACHINE=" C:\AUTOEXEC.BAT >NUL
|
||||
IF NOT ERRORLEVEL 1 GOTO MACHINE_EXISTS
|
||||
|
||||
:ADD_MACHINE_VAR
|
||||
|
||||
REM Append MACHINE variable to AUTOEXEC.BAT
|
||||
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
||||
IF ERRORLEVEL 1 GOTO AUTOEXEC_ERROR
|
||||
|
||||
ECHO [OK] Added to AUTOEXEC.BAT: SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:MACHINE_EXISTS
|
||||
ECHO [WARNING] MACHINE variable already exists in AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Current AUTOEXEC.BAT contains:
|
||||
TYPE C:\AUTOEXEC.BAT | FIND "SET MACHINE="
|
||||
ECHO.
|
||||
ECHO Update MACHINE variable to %MACHINE%? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
ECHO.
|
||||
ECHO Manual edit required:
|
||||
ECHO 1. Edit C:\AUTOEXEC.BAT
|
||||
ECHO 2. Find line: SET MACHINE=...
|
||||
ECHO 3. Change to: SET MACHINE=%MACHINE%
|
||||
ECHO 4. Save and reboot
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:AUTOEXEC_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not update AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO You must manually add this line to C:\AUTOEXEC.BAT:
|
||||
ECHO SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
REM ==================================================================
|
||||
REM DEPLOYMENT COMPLETE
|
||||
REM ==================================================================
|
||||
|
||||
:DEPLOYMENT_COMPLETE
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO Deployment Complete!
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO The DOS Update System has been installed on this machine.
|
||||
ECHO.
|
||||
ECHO Machine name: %MACHINE%
|
||||
ECHO Backup location: T:\%MACHINE%\BACKUP\
|
||||
ECHO Update location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Available Commands:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO NWTOC - Download updates from network
|
||||
ECHO CTONW - Upload local changes to network
|
||||
ECHO UPDATE - Backup entire C: drive to network
|
||||
ECHO CHECKUPD - Check for available updates
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Next Steps:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO 1. REBOOT this machine to activate MACHINE variable
|
||||
ECHO Press Ctrl+Alt+Del to reboot
|
||||
ECHO.
|
||||
ECHO 2. After reboot, run NWTOC to download all updates:
|
||||
ECHO C:\BAT\NWTOC
|
||||
ECHO.
|
||||
ECHO 3. Create initial backup:
|
||||
ECHO C:\BAT\UPDATE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Deployment log saved to: T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO.
|
||||
|
||||
REM Create deployment log
|
||||
ECHO Deployment completed: %DATE% %TIME% > T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Machine: %MACHINE% >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Files installed to: C:\BAT\ >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO AUTOEXEC.BAT backup: C:\AUTOEXEC.SAV >> T:\%MACHINE%\DEPLOY.LOG
|
||||
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET MACHINE=
|
||||
351
projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT
Normal file
351
projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT
Normal file
@@ -0,0 +1,351 @@
|
||||
@ECHO OFF
|
||||
REM DEPLOY.BAT - One-time deployment script for DOS Update System
|
||||
REM
|
||||
REM Purpose: Installs the new NWTOC update system on DOS 6.22 machines
|
||||
REM Location: Run from T:\COMMON\ProdSW\DEPLOY.BAT
|
||||
REM
|
||||
REM What this does:
|
||||
REM 1. Backs up current AUTOEXEC.BAT
|
||||
REM 2. Prompts for machine name (TS-4R, TS-7A, etc.)
|
||||
REM 3. Updates AUTOEXEC.BAT with MACHINE variable
|
||||
REM 4. Copies update batch files to C:\BAT\
|
||||
REM 5. Runs initial NWTOC to download all updates
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO DOS Update System - One-Time Deployment
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO This script will install the new update system on this machine.
|
||||
ECHO.
|
||||
ECHO What will be installed:
|
||||
ECHO - NWTOC.BAT (Download updates from network)
|
||||
ECHO - CTONW.BAT (Upload changes to network)
|
||||
ECHO - UPDATE.BAT (Full system backup)
|
||||
ECHO - STAGE.BAT (System file staging)
|
||||
ECHO - REBOOT.BAT (Apply updates on reboot)
|
||||
ECHO - CHECKUPD.BAT (Check for updates)
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Verify T: drive is accessible
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [STEP 1/5] Checking network drive...
|
||||
ECHO.
|
||||
|
||||
T: 2>NUL
|
||||
IF ERRORLEVEL 1 GOTO NO_T_DRIVE
|
||||
|
||||
C:
|
||||
IF NOT EXIST T:\NUL GOTO NO_T_DRIVE
|
||||
|
||||
ECHO [OK] T: drive is accessible
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO.
|
||||
GOTO CHECK_DEPLOY_FILES
|
||||
|
||||
:NO_T_DRIVE
|
||||
C:
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO The network drive T: must be mapped to \\D2TESTNAS\test
|
||||
ECHO.
|
||||
ECHO Run network startup first:
|
||||
ECHO C:\NET\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Or map manually:
|
||||
ECHO NET USE T: \\D2TESTNAS\test /YES
|
||||
ECHO.
|
||||
ECHO Then run DEPLOY.BAT again.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Verify deployment files exist on network
|
||||
REM ==================================================================
|
||||
|
||||
:CHECK_DEPLOY_FILES
|
||||
ECHO [STEP 2/5] Verifying deployment files...
|
||||
ECHO.
|
||||
|
||||
IF NOT EXIST T:\COMMON\ProdSW\NWTOC.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CTONW.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\UPDATE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\STAGE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CHECKUPD.BAT GOTO MISSING_FILES
|
||||
|
||||
ECHO [OK] All deployment files found on network
|
||||
ECHO Location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MISSING_FILES
|
||||
ECHO [ERROR] Deployment files not found on network
|
||||
ECHO.
|
||||
ECHO Expected location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO Files needed:
|
||||
ECHO - NWTOC.BAT
|
||||
ECHO - CTONW.BAT
|
||||
ECHO - UPDATE.BAT
|
||||
ECHO - STAGE.BAT
|
||||
ECHO - CHECKUPD.BAT
|
||||
ECHO.
|
||||
ECHO Contact system administrator.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Get machine name from user
|
||||
REM ==================================================================
|
||||
|
||||
:GET_MACHINE_NAME
|
||||
ECHO [STEP 3/5] Configure machine name...
|
||||
ECHO.
|
||||
ECHO Enter this machine's name (e.g., TS-4R, TS-7A, TS-12B):
|
||||
ECHO.
|
||||
ECHO Machine name must match the folder on T: drive.
|
||||
ECHO Example: If this is TS-4R, there should be T:\TS-4R\
|
||||
ECHO.
|
||||
SET /P MACHINE=Machine name:
|
||||
|
||||
REM Validate machine name was entered
|
||||
IF "%MACHINE%"=="" GOTO MACHINE_NAME_EMPTY
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] Machine name: %MACHINE%
|
||||
ECHO.
|
||||
|
||||
REM Verify machine folder exists on network
|
||||
ECHO Checking for T:\%MACHINE%\ folder...
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\NUL GOTO MACHINE_FOLDER_ERROR
|
||||
|
||||
ECHO [OK] Machine folder ready: T:\%MACHINE%\
|
||||
ECHO.
|
||||
GOTO BACKUP_AUTOEXEC
|
||||
|
||||
:MACHINE_NAME_EMPTY
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name cannot be empty
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MACHINE_FOLDER_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create machine folder on network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is writable
|
||||
ECHO - Network connection is stable
|
||||
ECHO - Permissions to create directories
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Backup current AUTOEXEC.BAT and install batch files
|
||||
REM ==================================================================
|
||||
|
||||
:BACKUP_AUTOEXEC
|
||||
ECHO [STEP 4/5] Installing update system files...
|
||||
ECHO.
|
||||
|
||||
REM Backup current AUTOEXEC.BAT
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT GOTO NO_AUTOEXEC_BACKUP
|
||||
|
||||
ECHO Backing up AUTOEXEC.BAT...
|
||||
COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF ERRORLEVEL 1 GOTO BACKUP_ERROR
|
||||
ECHO [OK] Backup created: C:\AUTOEXEC.SAV
|
||||
GOTO AUTOEXEC_BACKUP_DONE
|
||||
|
||||
:NO_AUTOEXEC_BACKUP
|
||||
ECHO [WARNING] No existing AUTOEXEC.BAT found
|
||||
|
||||
:AUTOEXEC_BACKUP_DONE
|
||||
ECHO.
|
||||
|
||||
REM Create C:\BAT directory if it doesn't exist
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
IF NOT EXIST C:\BAT\NUL GOTO BAT_DIR_ERROR
|
||||
|
||||
ECHO Copying update system files to C:\BAT\...
|
||||
|
||||
REM Copy batch files from network to local machine
|
||||
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] NWTOC.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CTONW.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] UPDATE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] STAGE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CHECKUPD.BAT
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] All update system files installed
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BACKUP_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not backup AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Continue anyway? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO END
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BAT_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create C:\BAT directory
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
:COPY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to copy files from network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is accessible
|
||||
ECHO - C: drive has free space
|
||||
ECHO - No file locks on C:\BAT\
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 5: Update AUTOEXEC.BAT with MACHINE variable
|
||||
REM ==================================================================
|
||||
|
||||
:UPDATE_AUTOEXEC
|
||||
ECHO [STEP 5/5] Updating AUTOEXEC.BAT...
|
||||
ECHO.
|
||||
|
||||
REM Check if MACHINE variable already exists in AUTOEXEC.BAT
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT GOTO ADD_MACHINE_VAR
|
||||
|
||||
FIND "SET MACHINE=" C:\AUTOEXEC.BAT >NUL
|
||||
IF NOT ERRORLEVEL 1 GOTO MACHINE_EXISTS
|
||||
|
||||
:ADD_MACHINE_VAR
|
||||
|
||||
REM Append MACHINE variable to AUTOEXEC.BAT
|
||||
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
||||
IF ERRORLEVEL 1 GOTO AUTOEXEC_ERROR
|
||||
|
||||
ECHO [OK] Added to AUTOEXEC.BAT: SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:MACHINE_EXISTS
|
||||
ECHO [WARNING] MACHINE variable already exists in AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Current AUTOEXEC.BAT contains:
|
||||
TYPE C:\AUTOEXEC.BAT | FIND "SET MACHINE="
|
||||
ECHO.
|
||||
ECHO Update MACHINE variable to %MACHINE%? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
ECHO.
|
||||
ECHO Manual edit required:
|
||||
ECHO 1. Edit C:\AUTOEXEC.BAT
|
||||
ECHO 2. Find line: SET MACHINE=...
|
||||
ECHO 3. Change to: SET MACHINE=%MACHINE%
|
||||
ECHO 4. Save and reboot
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:AUTOEXEC_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not update AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO You must manually add this line to C:\AUTOEXEC.BAT:
|
||||
ECHO SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
REM ==================================================================
|
||||
REM DEPLOYMENT COMPLETE
|
||||
REM ==================================================================
|
||||
|
||||
:DEPLOYMENT_COMPLETE
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO Deployment Complete!
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO The DOS Update System has been installed on this machine.
|
||||
ECHO.
|
||||
ECHO Machine name: %MACHINE%
|
||||
ECHO Backup location: T:\%MACHINE%\BACKUP\
|
||||
ECHO Update location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Available Commands:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO NWTOC - Download updates from network
|
||||
ECHO CTONW - Upload local changes to network
|
||||
ECHO UPDATE - Backup entire C: drive to network
|
||||
ECHO CHECKUPD - Check for available updates
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Next Steps:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO 1. REBOOT this machine to activate MACHINE variable
|
||||
ECHO Press Ctrl+Alt+Del to reboot
|
||||
ECHO.
|
||||
ECHO 2. After reboot, run NWTOC to download all updates:
|
||||
ECHO C:\BAT\NWTOC
|
||||
ECHO.
|
||||
ECHO 3. Create initial backup:
|
||||
ECHO C:\BAT\UPDATE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Deployment log saved to: T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO.
|
||||
|
||||
REM Create deployment log
|
||||
ECHO Deployment completed: %DATE% %TIME% > T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Machine: %MACHINE% >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Files installed to: C:\BAT\ >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO AUTOEXEC.BAT backup: C:\AUTOEXEC.SAV >> T:\%MACHINE%\DEPLOY.LOG
|
||||
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET MACHINE=
|
||||
345
projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT
Normal file
345
projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT
Normal file
@@ -0,0 +1,345 @@
|
||||
@ECHO OFF
|
||||
REM DEPLOY.BAT - One-time deployment script for DOS Update System
|
||||
REM
|
||||
REM Purpose: Installs the new NWTOC update system on DOS 6.22 machines
|
||||
REM Location: Run from T:\COMMON\ProdSW\DEPLOY.BAT
|
||||
REM
|
||||
REM What this does:
|
||||
REM 1. Backs up current AUTOEXEC.BAT
|
||||
REM 2. Prompts for machine name (TS-4R, TS-7A, etc.)
|
||||
REM 3. Updates AUTOEXEC.BAT with MACHINE variable
|
||||
REM 4. Copies update batch files to C:\BAT\
|
||||
REM 5. Runs initial NWTOC to download all updates
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO DOS Update System - One-Time Deployment
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO This script will install the new update system on this machine.
|
||||
ECHO.
|
||||
ECHO What will be installed:
|
||||
ECHO - NWTOC.BAT (Download updates from network)
|
||||
ECHO - CTONW.BAT (Upload changes to network)
|
||||
ECHO - UPDATE.BAT (Full system backup)
|
||||
ECHO - STAGE.BAT (System file staging)
|
||||
ECHO - REBOOT.BAT (Apply updates on reboot)
|
||||
ECHO - CHECKUPD.BAT (Check for updates)
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Verify T: drive is accessible
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [STEP 1/5] Checking network drive...
|
||||
ECHO.
|
||||
|
||||
T: 2>NUL
|
||||
IF ERRORLEVEL 1 GOTO NO_T_DRIVE
|
||||
|
||||
C:
|
||||
IF NOT EXIST T:\NUL GOTO NO_T_DRIVE
|
||||
|
||||
ECHO [OK] T: drive is accessible
|
||||
ECHO T: = \\D2TESTNAS\test
|
||||
ECHO.
|
||||
GOTO CHECK_DEPLOY_FILES
|
||||
|
||||
:NO_T_DRIVE
|
||||
C:
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO The network drive T: must be mapped to \\D2TESTNAS\test
|
||||
ECHO.
|
||||
ECHO Run network startup first:
|
||||
ECHO C:\NET\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Or map manually:
|
||||
ECHO NET USE T: \\D2TESTNAS\test /YES
|
||||
ECHO.
|
||||
ECHO Then run DEPLOY.BAT again.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Verify deployment files exist on network
|
||||
REM ==================================================================
|
||||
|
||||
:CHECK_DEPLOY_FILES
|
||||
ECHO [STEP 2/5] Verifying deployment files...
|
||||
ECHO.
|
||||
|
||||
IF NOT EXIST T:\COMMON\ProdSW\NWTOC.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CTONW.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\UPDATE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\STAGE.BAT GOTO MISSING_FILES
|
||||
IF NOT EXIST T:\COMMON\ProdSW\CHECKUPD.BAT GOTO MISSING_FILES
|
||||
|
||||
ECHO [OK] All deployment files found on network
|
||||
ECHO Location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MISSING_FILES
|
||||
ECHO [ERROR] Deployment files not found on network
|
||||
ECHO.
|
||||
ECHO Expected location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO Files needed:
|
||||
ECHO - NWTOC.BAT
|
||||
ECHO - CTONW.BAT
|
||||
ECHO - UPDATE.BAT
|
||||
ECHO - STAGE.BAT
|
||||
ECHO - CHECKUPD.BAT
|
||||
ECHO.
|
||||
ECHO Contact system administrator.
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Get machine name from user
|
||||
REM ==================================================================
|
||||
|
||||
:GET_MACHINE_NAME
|
||||
ECHO [STEP 3/5] Configure machine name...
|
||||
ECHO.
|
||||
ECHO Enter this machine's name (e.g., TS-4R, TS-7A, TS-12B):
|
||||
ECHO.
|
||||
ECHO Machine name must match the folder on T: drive.
|
||||
ECHO Example: If this is TS-4R, there should be T:\TS-4R\
|
||||
ECHO.
|
||||
SET /P MACHINE=Machine name:
|
||||
|
||||
REM Validate machine name was entered
|
||||
IF "%MACHINE%"=="" GOTO MACHINE_NAME_EMPTY
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] Machine name: %MACHINE%
|
||||
ECHO.
|
||||
|
||||
REM Verify machine folder exists on network
|
||||
ECHO Checking for T:\%MACHINE%\ folder...
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
|
||||
IF NOT EXIST T:\%MACHINE%\NUL GOTO MACHINE_FOLDER_ERROR
|
||||
|
||||
ECHO [OK] Machine folder ready: T:\%MACHINE%\
|
||||
ECHO.
|
||||
GOTO BACKUP_AUTOEXEC
|
||||
|
||||
:MACHINE_NAME_EMPTY
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name cannot be empty
|
||||
ECHO.
|
||||
GOTO GET_MACHINE_NAME
|
||||
|
||||
:MACHINE_FOLDER_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create machine folder on network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is writable
|
||||
ECHO - Network connection is stable
|
||||
ECHO - Permissions to create directories
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Backup current AUTOEXEC.BAT and install batch files
|
||||
REM ==================================================================
|
||||
|
||||
:BACKUP_AUTOEXEC
|
||||
ECHO [STEP 4/5] Installing update system files...
|
||||
ECHO.
|
||||
|
||||
REM Backup current AUTOEXEC.BAT
|
||||
IF EXIST C:\AUTOEXEC.BAT (
|
||||
ECHO Backing up AUTOEXEC.BAT...
|
||||
COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF ERRORLEVEL 1 GOTO BACKUP_ERROR
|
||||
ECHO [OK] Backup created: C:\AUTOEXEC.SAV
|
||||
) ELSE (
|
||||
ECHO [WARNING] No existing AUTOEXEC.BAT found
|
||||
)
|
||||
ECHO.
|
||||
|
||||
REM Create C:\BAT directory if it doesn't exist
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
IF NOT EXIST C:\BAT\NUL GOTO BAT_DIR_ERROR
|
||||
|
||||
ECHO Copying update system files to C:\BAT\...
|
||||
|
||||
REM Copy batch files from network to local machine
|
||||
XCOPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] NWTOC.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CTONW.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] UPDATE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\STAGE.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] STAGE.BAT
|
||||
|
||||
XCOPY T:\COMMON\ProdSW\CHECKUPD.BAT C:\BAT\ /Y
|
||||
IF ERRORLEVEL 4 GOTO COPY_ERROR
|
||||
ECHO [OK] CHECKUPD.BAT
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] All update system files installed
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BACKUP_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not backup AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Continue anyway? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO END
|
||||
ECHO.
|
||||
GOTO UPDATE_AUTOEXEC
|
||||
|
||||
:BAT_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create C:\BAT directory
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
:COPY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to copy files from network
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is accessible
|
||||
ECHO - C: drive has free space
|
||||
ECHO - No file locks on C:\BAT\
|
||||
ECHO.
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 5: Update AUTOEXEC.BAT with MACHINE variable
|
||||
REM ==================================================================
|
||||
|
||||
:UPDATE_AUTOEXEC
|
||||
ECHO [STEP 5/5] Updating AUTOEXEC.BAT...
|
||||
ECHO.
|
||||
|
||||
REM Check if MACHINE variable already exists in AUTOEXEC.BAT
|
||||
IF EXIST C:\AUTOEXEC.BAT (
|
||||
FIND "SET MACHINE=" C:\AUTOEXEC.BAT >NUL
|
||||
IF NOT ERRORLEVEL 1 GOTO MACHINE_EXISTS
|
||||
)
|
||||
|
||||
REM Append MACHINE variable to AUTOEXEC.BAT
|
||||
ECHO SET MACHINE=%MACHINE% >> C:\AUTOEXEC.BAT
|
||||
IF ERRORLEVEL 1 GOTO AUTOEXEC_ERROR
|
||||
|
||||
ECHO [OK] Added to AUTOEXEC.BAT: SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:MACHINE_EXISTS
|
||||
ECHO [WARNING] MACHINE variable already exists in AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO Current AUTOEXEC.BAT contains:
|
||||
TYPE C:\AUTOEXEC.BAT | FIND "SET MACHINE="
|
||||
ECHO.
|
||||
ECHO Update MACHINE variable to %MACHINE%? (Y/N)
|
||||
CHOICE /C:YN /N
|
||||
IF ERRORLEVEL 2 GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
ECHO.
|
||||
ECHO Manual edit required:
|
||||
ECHO 1. Edit C:\AUTOEXEC.BAT
|
||||
ECHO 2. Find line: SET MACHINE=...
|
||||
ECHO 3. Change to: SET MACHINE=%MACHINE%
|
||||
ECHO 4. Save and reboot
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
:AUTOEXEC_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not update AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO You must manually add this line to C:\AUTOEXEC.BAT:
|
||||
ECHO SET MACHINE=%MACHINE%
|
||||
ECHO.
|
||||
PAUSE Press any key to continue...
|
||||
GOTO DEPLOYMENT_COMPLETE
|
||||
|
||||
REM ==================================================================
|
||||
REM DEPLOYMENT COMPLETE
|
||||
REM ==================================================================
|
||||
|
||||
:DEPLOYMENT_COMPLETE
|
||||
CLS
|
||||
ECHO ==============================================================
|
||||
ECHO Deployment Complete!
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO The DOS Update System has been installed on this machine.
|
||||
ECHO.
|
||||
ECHO Machine name: %MACHINE%
|
||||
ECHO Backup location: T:\%MACHINE%\BACKUP\
|
||||
ECHO Update location: T:\COMMON\ProdSW\
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Available Commands:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO NWTOC - Download updates from network
|
||||
ECHO CTONW - Upload local changes to network
|
||||
ECHO UPDATE - Backup entire C: drive to network
|
||||
ECHO CHECKUPD - Check for available updates
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Next Steps:
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO 1. REBOOT this machine to activate MACHINE variable
|
||||
ECHO Press Ctrl+Alt+Del to reboot
|
||||
ECHO.
|
||||
ECHO 2. After reboot, run NWTOC to download all updates:
|
||||
ECHO C:\BAT\NWTOC
|
||||
ECHO.
|
||||
ECHO 3. Create initial backup:
|
||||
ECHO C:\BAT\UPDATE
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Deployment log saved to: T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO.
|
||||
|
||||
REM Create deployment log
|
||||
ECHO Deployment completed: %DATE% %TIME% > T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Machine: %MACHINE% >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO Files installed to: C:\BAT\ >> T:\%MACHINE%\DEPLOY.LOG
|
||||
ECHO AUTOEXEC.BAT backup: C:\AUTOEXEC.SAV >> T:\%MACHINE%\DEPLOY.LOG
|
||||
|
||||
PAUSE Press any key to exit...
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET MACHINE=
|
||||
187
projects/dataforth-dos/batch-files/DOSTEST.BAT
Normal file
187
projects/dataforth-dos/batch-files/DOSTEST.BAT
Normal file
@@ -0,0 +1,187 @@
|
||||
@ECHO OFF
|
||||
REM DOSTEST.BAT - Test DOS batch file deployment
|
||||
REM Run this on the DOS machine after deploying new files
|
||||
REM Version: 1.1 - Fixed drive test for DOS 6.22 reliability
|
||||
REM Last modified: 2026-01-20
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO DOS 6.22 Configuration Test Script
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 1: Check MACHINE variable
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [TEST 1] Checking MACHINE variable...
|
||||
|
||||
IF "%MACHINE%"=="" GOTO TEST1_FAIL
|
||||
ECHO [OK] MACHINE=%MACHINE%
|
||||
GOTO TEST2
|
||||
|
||||
:TEST1_FAIL
|
||||
ECHO [FAIL] MACHINE variable not set
|
||||
ECHO Fix: Add "SET MACHINE=TS-4R" to C:\AUTOEXEC.BAT
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO TEST2
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 2: Check required files exist
|
||||
REM ==================================================================
|
||||
|
||||
:TEST2
|
||||
ECHO.
|
||||
ECHO [TEST 2] Checking required files...
|
||||
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT ECHO [FAIL] C:\AUTOEXEC.BAT missing
|
||||
IF EXIST C:\AUTOEXEC.BAT ECHO [OK] C:\AUTOEXEC.BAT exists
|
||||
|
||||
IF NOT EXIST C:\STARTNET.BAT ECHO [FAIL] C:\STARTNET.BAT missing
|
||||
IF EXIST C:\STARTNET.BAT ECHO [OK] C:\STARTNET.BAT exists
|
||||
|
||||
IF NOT EXIST C:\BATCH\UPDATE.BAT ECHO [FAIL] C:\BATCH\UPDATE.BAT missing
|
||||
IF EXIST C:\BATCH\UPDATE.BAT ECHO [OK] C:\BATCH\UPDATE.BAT exists
|
||||
|
||||
IF NOT EXIST C:\BATCH\NUL ECHO [WARN] C:\BATCH directory missing - run MD C:\BATCH
|
||||
IF EXIST C:\BATCH\NUL ECHO [OK] C:\BATCH directory exists
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 3: Check PATH variable
|
||||
REM ==================================================================
|
||||
|
||||
ECHO.
|
||||
ECHO [TEST 3] Checking PATH...
|
||||
ECHO PATH=%PATH%
|
||||
|
||||
REM Check if C:\BATCH is in PATH (simple check - look for BATCH string)
|
||||
ECHO %PATH% | FIND /I "BATCH" > NUL
|
||||
IF ERRORLEVEL 1 GOTO TEST3_FAIL
|
||||
ECHO [OK] C:\BATCH is in PATH
|
||||
GOTO TEST4
|
||||
|
||||
:TEST3_FAIL
|
||||
ECHO [WARN] C:\BATCH not in PATH
|
||||
ECHO Fix: Add "SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\" to AUTOEXEC.BAT
|
||||
GOTO TEST4
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 4: Check T: drive
|
||||
REM ==================================================================
|
||||
|
||||
:TEST4
|
||||
ECHO.
|
||||
ECHO [TEST 4] Checking T: drive...
|
||||
|
||||
REM DOS 6.22: Direct file test is most reliable
|
||||
IF NOT EXIST T:\*.* GOTO TEST4_FAIL
|
||||
|
||||
ECHO [OK] T: drive accessible
|
||||
GOTO TEST5
|
||||
|
||||
:TEST4_FAIL
|
||||
ECHO [FAIL] T: drive not accessible
|
||||
ECHO Fix: Run C:\STARTNET.BAT to map network drives
|
||||
GOTO TEST5
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 5: Check X: drive
|
||||
REM ==================================================================
|
||||
|
||||
:TEST5
|
||||
ECHO.
|
||||
ECHO [TEST 5] Checking X: drive...
|
||||
|
||||
REM DOS 6.22: Direct file test is most reliable
|
||||
IF NOT EXIST X:\*.* GOTO TEST5_FAIL
|
||||
|
||||
ECHO [OK] X: drive accessible
|
||||
GOTO TEST6
|
||||
|
||||
:TEST5_FAIL
|
||||
ECHO [FAIL] X: drive not accessible
|
||||
ECHO Fix: Run C:\STARTNET.BAT to map network drives
|
||||
GOTO TEST6
|
||||
|
||||
REM ==================================================================
|
||||
REM TEST 6: Check if backup directory can be created
|
||||
REM ==================================================================
|
||||
|
||||
:TEST6
|
||||
ECHO.
|
||||
ECHO [TEST 6] Checking backup directory creation...
|
||||
|
||||
IF "%MACHINE%"=="" GOTO TEST6_SKIP
|
||||
|
||||
REM Only test if T: is available
|
||||
IF NOT EXIST T:\*.* GOTO TEST6_SKIP
|
||||
|
||||
REM Try to create machine directory
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE% 2>NUL
|
||||
IF NOT EXIST T:\%MACHINE%\NUL GOTO TEST6_FAIL
|
||||
|
||||
REM Try to create backup subdirectory
|
||||
IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST 2>NUL
|
||||
IF NOT EXIST T:\%MACHINE%\TEST\*.* GOTO TEST6_FAIL
|
||||
|
||||
ECHO [OK] Can create T:\%MACHINE%\TEST
|
||||
ECHO [OK] Backup directory structure works
|
||||
|
||||
REM Clean up test directory
|
||||
RD T:\%MACHINE%\TEST 2>NUL
|
||||
|
||||
GOTO SUMMARY
|
||||
|
||||
:TEST6_FAIL
|
||||
ECHO [FAIL] Cannot create directory on T: drive
|
||||
ECHO Check: T: drive is writable
|
||||
GOTO SUMMARY
|
||||
|
||||
:TEST6_SKIP
|
||||
ECHO [SKIP] Cannot test (T: unavailable or MACHINE not set)
|
||||
GOTO SUMMARY
|
||||
|
||||
REM ==================================================================
|
||||
REM SUMMARY
|
||||
REM ==================================================================
|
||||
|
||||
:SUMMARY
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Test Summary
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM Count passes and fails would be complex in DOS batch
|
||||
REM Just show overall status
|
||||
|
||||
IF "%MACHINE%"=="" GOTO SUMMARY_FAIL
|
||||
IF NOT EXIST C:\BATCH\UPDATE.BAT GOTO SUMMARY_FAIL
|
||||
IF NOT EXIST T:\*.* GOTO SUMMARY_FAIL
|
||||
|
||||
ECHO [OK] All critical tests passed
|
||||
ECHO.
|
||||
ECHO Configuration appears correct.
|
||||
ECHO.
|
||||
ECHO Next step: Run UPDATE to test backup
|
||||
ECHO C:\>UPDATE
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:SUMMARY_FAIL
|
||||
ECHO [FAIL] One or more tests failed
|
||||
ECHO.
|
||||
ECHO Please fix the failed tests before running UPDATE
|
||||
ECHO.
|
||||
ECHO Common fixes:
|
||||
ECHO 1. Reboot machine (load AUTOEXEC.BAT changes)
|
||||
ECHO 2. Run C:\STARTNET.BAT (map network drives)
|
||||
ECHO 3. Check network cable is connected
|
||||
ECHO 4. Create C:\BATCH directory: MD C:\BATCH
|
||||
ECHO.
|
||||
|
||||
:END
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
PAUSE
|
||||
208
projects/dataforth-dos/batch-files/NWTOC.BAT
Normal file
208
projects/dataforth-dos/batch-files/NWTOC.BAT
Normal file
@@ -0,0 +1,208 @@
|
||||
@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=
|
||||
166
projects/dataforth-dos/batch-files/REBOOT.BAT
Normal file
166
projects/dataforth-dos/batch-files/REBOOT.BAT
Normal file
@@ -0,0 +1,166 @@
|
||||
@ECHO OFF
|
||||
REM REBOOT.BAT - Manual system file update script
|
||||
REM
|
||||
REM NOTE: This file is normally AUTO-GENERATED by STAGE.BAT
|
||||
REM This standalone version is for manual testing/recovery only
|
||||
REM
|
||||
REM Usage: REBOOT
|
||||
REM
|
||||
REM Applies staged system file updates:
|
||||
REM C:\AUTOEXEC.NEW ??? C:\AUTOEXEC.BAT
|
||||
REM C:\CONFIG.NEW ??? C:\CONFIG.SYS
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Manual System File Update
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM Check if staged files exist
|
||||
REM ==================================================================
|
||||
|
||||
SET HASAUTO=0
|
||||
SET HASCONF=0
|
||||
|
||||
IF EXIST C:\AUTOEXEC.NEW SET HASAUTO=1
|
||||
IF EXIST C:\CONFIG.NEW SET HASCONF=1
|
||||
|
||||
IF "%HASAUTO%"=="0" IF "%HASCONF%"=="0" GOTO NO_UPDATES
|
||||
|
||||
REM ==================================================================
|
||||
REM Warn user
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [WARNING] This will replace your current system files:
|
||||
ECHO.
|
||||
IF "%HASAUTO%"=="1" ECHO C:\AUTOEXEC.BAT will be replaced by C:\AUTOEXEC.NEW
|
||||
IF "%HASCONF%"=="1" ECHO C:\CONFIG.SYS will be replaced by C:\CONFIG.NEW
|
||||
ECHO.
|
||||
ECHO Backups will be saved as .SAV files.
|
||||
ECHO.
|
||||
ECHO Press Ctrl+C to cancel, or
|
||||
PAUSE
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM Backup current files
|
||||
REM ==================================================================
|
||||
|
||||
ECHO Creating backups...
|
||||
|
||||
IF EXIST C:\AUTOEXEC.BAT COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF EXIST C:\AUTOEXEC.BAT IF NOT ERRORLEVEL 1 ECHO [OK] C:\AUTOEXEC.BAT ??? C:\AUTOEXEC.SAV
|
||||
|
||||
IF EXIST C:\CONFIG.SYS COPY C:\CONFIG.SYS C:\CONFIG.SAV >NUL
|
||||
IF EXIST C:\CONFIG.SYS IF NOT ERRORLEVEL 1 ECHO [OK] C:\CONFIG.SYS ??? C:\CONFIG.SAV
|
||||
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM Apply updates
|
||||
REM ==================================================================
|
||||
|
||||
ECHO Applying updates...
|
||||
|
||||
REM Apply AUTOEXEC.NEW
|
||||
IF "%HASAUTO%"=="1" COPY C:\AUTOEXEC.NEW C:\AUTOEXEC.BAT >NUL
|
||||
IF "%HASAUTO%"=="1" IF NOT ERRORLEVEL 1 ECHO [OK] AUTOEXEC.BAT updated
|
||||
IF "%HASAUTO%"=="1" IF ERRORLEVEL 1 ECHO [ERROR] AUTOEXEC.BAT update failed
|
||||
IF "%HASAUTO%"=="1" IF ERRORLEVEL 1 GOTO UPDATE_ERROR
|
||||
|
||||
REM Apply CONFIG.NEW
|
||||
IF "%HASCONF%"=="1" COPY C:\CONFIG.NEW C:\CONFIG.SYS >NUL
|
||||
IF "%HASCONF%"=="1" IF NOT ERRORLEVEL 1 ECHO [OK] CONFIG.SYS updated
|
||||
IF "%HASCONF%"=="1" IF ERRORLEVEL 1 ECHO [ERROR] CONFIG.SYS update failed
|
||||
IF "%HASCONF%"=="1" IF ERRORLEVEL 1 GOTO UPDATE_ERROR
|
||||
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM Clean up staging files
|
||||
REM ==================================================================
|
||||
|
||||
ECHO Cleaning up staging files...
|
||||
|
||||
IF EXIST C:\AUTOEXEC.NEW DEL C:\AUTOEXEC.NEW
|
||||
IF EXIST C:\CONFIG.NEW DEL C:\CONFIG.NEW
|
||||
|
||||
ECHO [OK] Staging files deleted
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM Success
|
||||
REM ==================================================================
|
||||
|
||||
ECHO ==============================================================
|
||||
ECHO System Files Updated Successfully
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO Updated files:
|
||||
IF "%HASAUTO%"=="1" ECHO - C:\AUTOEXEC.BAT
|
||||
IF "%HASCONF%"=="1" ECHO - C:\CONFIG.SYS
|
||||
ECHO.
|
||||
ECHO Backup files saved:
|
||||
ECHO - C:\AUTOEXEC.SAV (previous AUTOEXEC.BAT)
|
||||
ECHO - C:\CONFIG.SAV (previous CONFIG.SYS)
|
||||
ECHO.
|
||||
ECHO To activate changes:
|
||||
ECHO Reboot the computer (Ctrl+Alt+Del)
|
||||
ECHO.
|
||||
ECHO To rollback changes:
|
||||
ECHO COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
||||
ECHO COPY C:\CONFIG.SAV C:\CONFIG.SYS
|
||||
ECHO Then reboot
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM ERROR HANDLERS
|
||||
REM ==================================================================
|
||||
|
||||
:NO_UPDATES
|
||||
ECHO [WARNING] No staged update files found
|
||||
ECHO.
|
||||
ECHO Expected files:
|
||||
ECHO C:\AUTOEXEC.NEW (not found)
|
||||
ECHO C:\CONFIG.NEW (not found)
|
||||
ECHO.
|
||||
ECHO Run NWTOC to download updates from network, then:
|
||||
ECHO CALL C:\BAT\STAGE.BAT
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:UPDATE_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Update failed
|
||||
ECHO.
|
||||
ECHO Your system may be in an inconsistent state.
|
||||
ECHO.
|
||||
ECHO Recovery steps:
|
||||
ECHO 1. COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
||||
ECHO 2. COPY C:\CONFIG.SAV C:\CONFIG.SYS
|
||||
ECHO 3. Reboot (Ctrl+Alt+Del)
|
||||
ECHO.
|
||||
ECHO If system won't boot:
|
||||
ECHO 1. Boot from DOS floppy
|
||||
ECHO 2. Copy .SAV files back to .BAT and .SYS
|
||||
ECHO 3. Remove floppy and reboot
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
SET HASAUTO=
|
||||
SET HASCONF=
|
||||
245
projects/dataforth-dos/batch-files/STAGE.BAT
Normal file
245
projects/dataforth-dos/batch-files/STAGE.BAT
Normal file
@@ -0,0 +1,245 @@
|
||||
@ECHO OFF
|
||||
REM STAGE.BAT - Stage system files for update after reboot
|
||||
REM Called by NWTOC.BAT when AUTOEXEC.NEW or CONFIG.NEW are detected
|
||||
REM
|
||||
REM This script:
|
||||
REM 1. Verifies staged files exist (C:\AUTOEXEC.NEW, C:\CONFIG.NEW)
|
||||
REM 2. Backs up current AUTOEXEC.BAT to C:\AUTOEXEC.SAV
|
||||
REM 3. Creates REBOOT.BAT to apply changes after reboot
|
||||
REM 4. Modifies AUTOEXEC.BAT to call REBOOT.BAT once on next boot
|
||||
REM 5. Instructs user to reboot
|
||||
REM
|
||||
REM Version: 1.0 - DOS 6.22 compatible
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Verify staged files exist
|
||||
REM ==================================================================
|
||||
|
||||
SET HASAUTO=0
|
||||
SET HASCONF=0
|
||||
|
||||
IF EXIST C:\AUTOEXEC.NEW SET HASAUTO=1
|
||||
IF EXIST C:\CONFIG.NEW SET HASCONF=1
|
||||
|
||||
REM Check if any updates need staging
|
||||
IF "%HASAUTO%"=="0" IF "%HASCONF%"=="0" GOTO NO_UPDATES
|
||||
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Staging System File Updates
|
||||
ECHO ==============================================================
|
||||
|
||||
IF "%HASAUTO%"=="1" ECHO [STAGED] C:\AUTOEXEC.NEW ??? Will replace AUTOEXEC.BAT
|
||||
IF "%HASCONF%"=="1" ECHO [STAGED] C:\CONFIG.NEW ??? Will replace CONFIG.SYS
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Backup current AUTOEXEC.BAT
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [1/3] Backing up current system files...
|
||||
|
||||
REM Check if AUTOEXEC.BAT exists
|
||||
IF NOT EXIST C:\AUTOEXEC.BAT GOTO NO_AUTOEXEC
|
||||
|
||||
REM Create backup
|
||||
COPY C:\AUTOEXEC.BAT C:\AUTOEXEC.SAV >NUL
|
||||
IF ERRORLEVEL 1 GOTO BACKUP_ERROR
|
||||
|
||||
ECHO [OK] C:\AUTOEXEC.BAT ??? C:\AUTOEXEC.SAV
|
||||
|
||||
REM Also backup CONFIG.SYS if it exists
|
||||
IF EXIST C:\CONFIG.SYS COPY C:\CONFIG.SYS C:\CONFIG.SAV >NUL
|
||||
IF EXIST C:\CONFIG.SYS IF NOT ERRORLEVEL 1 ECHO [OK] C:\CONFIG.SYS ??? C:\CONFIG.SAV
|
||||
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Create REBOOT.BAT
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [2/3] Creating reboot update script...
|
||||
|
||||
REM Create C:\BAT directory if it doesn't exist
|
||||
IF NOT EXIST C:\BAT\NUL MD C:\BAT
|
||||
|
||||
REM Create REBOOT.BAT - this runs once after reboot
|
||||
ECHO @ECHO OFF > C:\BAT\REBOOT.BAT
|
||||
ECHO REM REBOOT.BAT - Apply staged system updates (AUTO-GENERATED) >> C:\BAT\REBOOT.BAT
|
||||
ECHO REM This file is automatically deleted after running >> C:\BAT\REBOOT.BAT
|
||||
ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO ============================================================== >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO Applying System Updates >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO ============================================================== >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO. >> C:\BAT\REBOOT.BAT
|
||||
|
||||
REM Apply AUTOEXEC.NEW if it exists
|
||||
IF "%HASAUTO%"=="1" ECHO IF EXIST C:\AUTOEXEC.NEW ECHO [1/2] Updating AUTOEXEC.BAT... >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASAUTO%"=="1" ECHO IF EXIST C:\AUTOEXEC.NEW COPY C:\AUTOEXEC.NEW C:\AUTOEXEC.BAT ^>NUL >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASAUTO%"=="1" ECHO IF EXIST C:\AUTOEXEC.NEW IF NOT ERRORLEVEL 1 ECHO [OK] AUTOEXEC.BAT updated >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASAUTO%"=="1" ECHO IF EXIST C:\AUTOEXEC.NEW IF ERRORLEVEL 1 ECHO [ERROR] AUTOEXEC.BAT update failed >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASAUTO%"=="1" ECHO IF EXIST C:\AUTOEXEC.NEW DEL C:\AUTOEXEC.NEW >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASAUTO%"=="1" ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
|
||||
REM Apply CONFIG.NEW if it exists
|
||||
IF "%HASCONF%"=="1" ECHO IF EXIST C:\CONFIG.NEW ECHO [2/2] Updating CONFIG.SYS... >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASCONF%"=="1" ECHO IF EXIST C:\CONFIG.NEW COPY C:\CONFIG.NEW C:\CONFIG.SYS ^>NUL >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASCONF%"=="1" ECHO IF EXIST C:\CONFIG.NEW IF NOT ERRORLEVEL 1 ECHO [OK] CONFIG.SYS updated >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASCONF%"=="1" ECHO IF EXIST C:\CONFIG.NEW IF ERRORLEVEL 1 ECHO [ERROR] CONFIG.SYS update failed >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASCONF%"=="1" ECHO IF EXIST C:\CONFIG.NEW DEL C:\CONFIG.NEW >> C:\BAT\REBOOT.BAT
|
||||
IF "%HASCONF%"=="1" ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
|
||||
REM Delete REBOOT.BAT after running
|
||||
ECHO ECHO ============================================================== >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO System Updates Applied >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO ============================================================== >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO Rollback files available: >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO C:\AUTOEXEC.SAV - Previous AUTOEXEC.BAT >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO C:\CONFIG.SAV - Previous CONFIG.SYS >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO To rollback, run: >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO COPY C:\CONFIG.SAV C:\CONFIG.SYS >> C:\BAT\REBOOT.BAT
|
||||
ECHO ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO PAUSE Press any key to continue boot... >> C:\BAT\REBOOT.BAT
|
||||
ECHO. >> C:\BAT\REBOOT.BAT
|
||||
ECHO REM Delete this script >> C:\BAT\REBOOT.BAT
|
||||
ECHO DEL C:\BAT\REBOOT.BAT >> C:\BAT\REBOOT.BAT
|
||||
|
||||
IF NOT EXIST C:\BAT\REBOOT.BAT GOTO CREATE_ERROR
|
||||
|
||||
ECHO [OK] C:\BAT\REBOOT.BAT created
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Modify AUTOEXEC.BAT to call REBOOT.BAT once
|
||||
REM ==================================================================
|
||||
|
||||
ECHO [3/3] Modifying AUTOEXEC.BAT for one-time reboot update...
|
||||
|
||||
REM Create temporary file with REBOOT.BAT call at the top
|
||||
ECHO @ECHO OFF > C:\AUTOEXEC.TMP
|
||||
ECHO REM One-time system update on next reboot >> C:\AUTOEXEC.TMP
|
||||
ECHO IF EXIST C:\BAT\REBOOT.BAT CALL C:\BAT\REBOOT.BAT >> C:\AUTOEXEC.TMP
|
||||
ECHO. >> C:\AUTOEXEC.TMP
|
||||
|
||||
REM Append current AUTOEXEC.BAT contents (skip first @ECHO OFF line)
|
||||
REM DOS 6.22: Use TYPE and redirect (simple copy preserves all lines)
|
||||
TYPE C:\AUTOEXEC.BAT >> C:\AUTOEXEC.TMP
|
||||
|
||||
REM Replace AUTOEXEC.BAT with modified version
|
||||
COPY C:\AUTOEXEC.TMP C:\AUTOEXEC.BAT >NUL
|
||||
IF ERRORLEVEL 1 GOTO MODIFY_ERROR
|
||||
|
||||
REM Clean up temporary file
|
||||
DEL C:\AUTOEXEC.TMP
|
||||
|
||||
ECHO [OK] AUTOEXEC.BAT modified to run update on next boot
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 5: Instruct user to reboot
|
||||
REM ==================================================================
|
||||
|
||||
ECHO ==============================================================
|
||||
ECHO REBOOT REQUIRED
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
ECHO System files have been staged for update.
|
||||
ECHO.
|
||||
ECHO On next boot, AUTOEXEC.BAT will automatically:
|
||||
ECHO 1. Apply AUTOEXEC.NEW and/or CONFIG.NEW
|
||||
ECHO 2. Delete staging files
|
||||
ECHO 3. Continue normal boot
|
||||
ECHO.
|
||||
ECHO To apply updates now:
|
||||
ECHO 1. Press Ctrl+Alt+Del to reboot
|
||||
ECHO 2. Or type: EXIT and reboot from DOS prompt
|
||||
ECHO.
|
||||
ECHO To cancel update:
|
||||
ECHO 1. Delete C:\AUTOEXEC.NEW
|
||||
ECHO 2. Delete C:\CONFIG.NEW
|
||||
ECHO 3. Delete C:\BAT\REBOOT.BAT
|
||||
ECHO 4. Restore C:\AUTOEXEC.BAT from C:\AUTOEXEC.SAV
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM ERROR HANDLERS
|
||||
REM ==================================================================
|
||||
|
||||
:NO_UPDATES
|
||||
ECHO.
|
||||
ECHO [WARNING] No staged update files found
|
||||
ECHO.
|
||||
ECHO Expected files:
|
||||
ECHO C:\AUTOEXEC.NEW (not found)
|
||||
ECHO C:\CONFIG.NEW (not found)
|
||||
ECHO.
|
||||
ECHO Run NWTOC to download updates from network.
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_AUTOEXEC
|
||||
ECHO.
|
||||
ECHO [ERROR] C:\AUTOEXEC.BAT not found
|
||||
ECHO.
|
||||
ECHO Cannot stage updates without existing AUTOEXEC.BAT
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:BACKUP_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to create backup
|
||||
ECHO.
|
||||
ECHO Could not copy C:\AUTOEXEC.BAT to C:\AUTOEXEC.SAV
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - Sufficient disk space on C:
|
||||
ECHO - C: drive is not write-protected
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:CREATE_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to create C:\BAT\REBOOT.BAT
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - C:\BAT directory exists
|
||||
ECHO - Sufficient disk space on C:
|
||||
ECHO - C: drive is not write-protected
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:MODIFY_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Failed to modify AUTOEXEC.BAT
|
||||
ECHO.
|
||||
ECHO AUTOEXEC.BAT may be corrupted!
|
||||
ECHO.
|
||||
ECHO Recovery:
|
||||
ECHO COPY C:\AUTOEXEC.SAV C:\AUTOEXEC.BAT
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables
|
||||
SET HASAUTO=
|
||||
SET HASCONF=
|
||||
75
projects/dataforth-dos/batch-files/STARTNET.BAT
Normal file
75
projects/dataforth-dos/batch-files/STARTNET.BAT
Normal file
@@ -0,0 +1,75 @@
|
||||
@ECHO OFF
|
||||
REM STARTNET.BAT - Start Microsoft Network Client and map drives
|
||||
REM Called from AUTOEXEC.BAT
|
||||
REM
|
||||
REM Version: 2.0
|
||||
REM Last modified: 2026-01-19
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Start network client
|
||||
REM ==================================================================
|
||||
|
||||
REM Load network protocols and drivers
|
||||
REM This starts the Microsoft Network Client that was loaded via CONFIG.SYS
|
||||
NET START
|
||||
|
||||
REM Check if NET START succeeded
|
||||
IF ERRORLEVEL 1 GOTO NET_START_FAILED
|
||||
|
||||
ECHO [OK] Network client started
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Map network drives
|
||||
REM ==================================================================
|
||||
|
||||
REM Map T: to test share (SMB1 compatible)
|
||||
REM /YES = Don't prompt for confirmation
|
||||
NET USE T: \\D2TESTNAS\test /YES
|
||||
IF ERRORLEVEL 1 GOTO T_DRIVE_FAILED
|
||||
|
||||
ECHO [OK] T: mapped to \\D2TESTNAS\test
|
||||
|
||||
REM Map X: to datasheets share
|
||||
NET USE X: \\D2TESTNAS\datasheets /YES
|
||||
IF ERRORLEVEL 1 GOTO X_DRIVE_FAILED
|
||||
|
||||
ECHO [OK] X: mapped to \\D2TESTNAS\datasheets
|
||||
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM ERROR HANDLERS
|
||||
REM ==================================================================
|
||||
|
||||
:NET_START_FAILED
|
||||
ECHO [ERROR] Network client failed to start
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - Network cable is connected
|
||||
ECHO - CONFIG.SYS has correct network drivers
|
||||
ECHO - PROTOCOL.INI is configured correctly
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:T_DRIVE_FAILED
|
||||
ECHO [ERROR] Failed to map T: drive
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - Server \\D2TESTNAS is online
|
||||
ECHO - Share \\D2TESTNAS\test exists
|
||||
ECHO - Network connectivity to 172.16.3.0/24 network
|
||||
ECHO - SMB1 protocol enabled on NAS
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:X_DRIVE_FAILED
|
||||
ECHO [ERROR] Failed to map X: drive
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - Server \\D2TESTNAS is online
|
||||
ECHO - Share \\D2TESTNAS\datasheets exists
|
||||
ECHO.
|
||||
GOTO END
|
||||
|
||||
:END
|
||||
REM Return to AUTOEXEC.BAT
|
||||
5
projects/dataforth-dos/batch-files/TEST-NWTOC.BAT
Normal file
5
projects/dataforth-dos/batch-files/TEST-NWTOC.BAT
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
REM Quick test to run updated NWTOC from network
|
||||
REM Run this on TS-4R to get latest version
|
||||
ECHO Running updated NWTOC from T:\COMMON\ProdSW...
|
||||
CALL T:\COMMON\ProdSW\NWTOC.BAT
|
||||
5
projects/dataforth-dos/batch-files/UPDATE-ROOT.BAT
Normal file
5
projects/dataforth-dos/batch-files/UPDATE-ROOT.BAT
Normal file
@@ -0,0 +1,5 @@
|
||||
@ECHO OFF
|
||||
REM UPDATE.BAT - Redirect to DEPLOY.BAT in proper location
|
||||
REM Usage: UPDATE.BAT machine-name
|
||||
REM Example: UPDATE.BAT TS-4R
|
||||
CALL T:\COMMON\ProdSW\DEPLOY.BAT %1
|
||||
199
projects/dataforth-dos/batch-files/UPDATE.BAT
Normal file
199
projects/dataforth-dos/batch-files/UPDATE.BAT
Normal file
@@ -0,0 +1,199 @@
|
||||
@ECHO OFF
|
||||
REM UPDATE.BAT - Backup Dataforth test machine to network storage
|
||||
REM Usage: UPDATE [machine-name]
|
||||
REM Example: UPDATE TS-4R
|
||||
REM
|
||||
REM If machine-name not provided, uses MACHINE environment variable
|
||||
REM from AUTOEXEC.BAT
|
||||
REM
|
||||
REM Version: 2.3 - Fixed XCOPY trailing backslash (DOS 6.22 compatibility)
|
||||
REM Last modified: 2026-01-20
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 1: Determine machine name
|
||||
REM ==================================================================
|
||||
|
||||
IF NOT "%1"=="" GOTO USE_PARAM
|
||||
IF NOT "%MACHINE%"=="" GOTO USE_ENV
|
||||
|
||||
:NO_MACHINE
|
||||
ECHO.
|
||||
ECHO [ERROR] Machine name not specified
|
||||
ECHO.
|
||||
ECHO Usage: UPDATE machine-name
|
||||
ECHO Example: UPDATE TS-4R
|
||||
ECHO.
|
||||
ECHO Or set MACHINE variable in AUTOEXEC.BAT:
|
||||
ECHO SET MACHINE=TS-4R
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:USE_PARAM
|
||||
SET MACHINE=%1
|
||||
GOTO CHECK_DRIVE
|
||||
|
||||
:USE_ENV
|
||||
REM Machine name from environment variable
|
||||
GOTO CHECK_DRIVE
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 2: Verify T: drive is accessible
|
||||
REM ==================================================================
|
||||
|
||||
:CHECK_DRIVE
|
||||
ECHO Checking network drive T:...
|
||||
|
||||
REM DOS 6.22: Direct file test is most reliable
|
||||
IF NOT EXIST T:\*.* GOTO NO_T_DRIVE
|
||||
|
||||
ECHO [OK] T: drive accessible
|
||||
GOTO START_BACKUP
|
||||
|
||||
:NO_T_DRIVE
|
||||
ECHO.
|
||||
ECHO [ERROR] T: drive not available
|
||||
ECHO.
|
||||
ECHO Network drive T: must be mapped to \\D2TESTNAS\test
|
||||
ECHO.
|
||||
ECHO Run STARTNET.BAT to map network drives:
|
||||
ECHO C:\STARTNET.BAT
|
||||
ECHO.
|
||||
ECHO Or map manually:
|
||||
ECHO NET USE T: \\D2TESTNAS\test /YES
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 3: Create backup directory structure
|
||||
REM ==================================================================
|
||||
|
||||
:START_BACKUP
|
||||
ECHO.
|
||||
ECHO ==============================================================
|
||||
ECHO Backup: Machine %MACHINE%
|
||||
ECHO ==============================================================
|
||||
ECHO Source: C:\
|
||||
ECHO Target: T:\%MACHINE%\BACKUP
|
||||
ECHO.
|
||||
|
||||
REM Create machine directory if it doesn't exist
|
||||
IF NOT EXIST T:\%MACHINE%\NUL MD T:\%MACHINE%
|
||||
|
||||
REM Create backup directory
|
||||
IF NOT EXIST T:\%MACHINE%\BACKUP\NUL MD T:\%MACHINE%\BACKUP
|
||||
|
||||
REM Check if backup directory was created successfully
|
||||
IF NOT EXIST T:\%MACHINE%\BACKUP\*.* GOTO BACKUP_DIR_ERROR
|
||||
|
||||
ECHO [OK] Backup directory ready
|
||||
ECHO.
|
||||
|
||||
REM ==================================================================
|
||||
REM STEP 4: Perform backup
|
||||
REM ==================================================================
|
||||
|
||||
ECHO Starting backup...
|
||||
ECHO This may take several minutes depending on file count.
|
||||
ECHO.
|
||||
|
||||
REM XCOPY options for DOS 6.22:
|
||||
REM /S = Copy subdirectories (except empty ones)
|
||||
REM /E = Copy subdirectories (including empty ones)
|
||||
REM /Y = Suppress prompts (auto-overwrite)
|
||||
REM /H = Copy hidden and system files
|
||||
REM /K = Copy attributes
|
||||
REM /C = Continue on errors
|
||||
REM
|
||||
REM NOTE: /D flag removed - requires date parameter in DOS 6.22 (/D:mm-dd-yy)
|
||||
REM NOTE: /Q flag not available in DOS 6.22 (added in later Windows versions)
|
||||
|
||||
XCOPY C:\*.* T:\%MACHINE%\BACKUP /S /E /Y /H /K /C
|
||||
|
||||
REM Check XCOPY error level
|
||||
REM 0 = Files copied OK
|
||||
REM 1 = No files found to copy
|
||||
REM 2 = User terminated (Ctrl+C)
|
||||
REM 4 = Initialization error (insufficient memory, invalid path, etc)
|
||||
REM 5 = Disk write error
|
||||
|
||||
IF ERRORLEVEL 5 GOTO DISK_ERROR
|
||||
IF ERRORLEVEL 4 GOTO INIT_ERROR
|
||||
IF ERRORLEVEL 2 GOTO USER_ABORT
|
||||
IF ERRORLEVEL 1 GOTO NO_FILES
|
||||
|
||||
ECHO.
|
||||
ECHO [OK] Backup completed successfully
|
||||
ECHO.
|
||||
ECHO Files backed up to: T:\%MACHINE%\BACKUP
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM ERROR HANDLERS
|
||||
REM ==================================================================
|
||||
|
||||
:BACKUP_DIR_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Could not create backup directory
|
||||
ECHO Target: T:\%MACHINE%\BACKUP
|
||||
ECHO.
|
||||
ECHO Check:
|
||||
ECHO - T: drive is writable
|
||||
ECHO - Sufficient disk space on T:
|
||||
ECHO - Network connection is stable
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:DISK_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Disk write error
|
||||
ECHO.
|
||||
ECHO Possible causes:
|
||||
ECHO - Target drive is full
|
||||
ECHO - Network connection lost
|
||||
ECHO - Permission denied
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:INIT_ERROR
|
||||
ECHO.
|
||||
ECHO [ERROR] Backup initialization failed
|
||||
ECHO.
|
||||
ECHO Possible causes:
|
||||
ECHO - Insufficient memory
|
||||
ECHO - Invalid path
|
||||
ECHO - Target drive not accessible
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:USER_ABORT
|
||||
ECHO.
|
||||
ECHO [WARNING] Backup terminated by user (Ctrl+C)
|
||||
ECHO.
|
||||
ECHO Backup may be incomplete!
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
:NO_FILES
|
||||
ECHO.
|
||||
ECHO [WARNING] No files found to copy
|
||||
ECHO.
|
||||
ECHO This may indicate:
|
||||
ECHO - All files are already up to date (/D option)
|
||||
ECHO - Source drive is empty
|
||||
ECHO.
|
||||
PAUSE
|
||||
GOTO END
|
||||
|
||||
REM ==================================================================
|
||||
REM CLEANUP AND EXIT
|
||||
REM ==================================================================
|
||||
|
||||
:END
|
||||
REM Clean up environment variables (DOS has limited space)
|
||||
SET OLDDRV=
|
||||
Reference in New Issue
Block a user