From 63ab144c8fc0b9219796c1e55a8a948d767101bb Mon Sep 17 00:00:00 2001 From: azcomputerguru Date: Thu, 22 Jan 2026 19:10:59 -0700 Subject: [PATCH] sync: Auto-sync from Mikes-MacBook-Air.local at 2026-01-22 19:10:48 Synced files: - DOS batch files updated (ATESYNC, CTONWTXT, DEPLOY, NWTOC, etc.) - New debug batch files (ATESYNCD, CTONWD, NWTOCD, DIAGBK) - Removed obsolete debug files (ATESYNC-DEBUG, CTONW-DEBUG, NWTOC-DEBUG) - New deployment scripts (deploy-to-nas.sh, validate-dos.sh) - DOS coding agent documentation updated Machine: Mikes-MacBook-Air.local Timestamp: 2026-01-22 19:10:48 Co-Authored-By: Claude Opus 4.5 --- .claude/agents/dos-coding.md | 76 +- .../dataforth-dos/batch-files/ATESYNC.BAT | 174 ++--- .../{ATESYNC-DEBUG.BAT => ATESYNCD.BAT} | 259 +++---- .../dataforth-dos/batch-files/AUTOEXEC.BAT | 162 ++-- .../{CTONW-DEBUG.BAT => CTONWD.BAT} | 270 +++---- .../dataforth-dos/batch-files/CTONWTXT.BAT | 68 +- projects/dataforth-dos/batch-files/DEPLOY.BAT | 8 +- .../batch-files/DEPLOY_FROM_AD2.BAT | 690 ++++++++--------- .../batch-files/DEPLOY_FROM_NAS.BAT | 702 +++++++++--------- .../dataforth-dos/batch-files/DEPLOY_TEST.BAT | 702 +++++++++--------- .../batch-files/DEPLOY_VERIFY.BAT | 690 ++++++++--------- projects/dataforth-dos/batch-files/DIAGBK.BAT | 29 + .../dataforth-dos/batch-files/DOSTEST.BAT | 334 ++++----- projects/dataforth-dos/batch-files/NWTOC.BAT | 12 +- .../{NWTOC-DEBUG.BAT => NWTOCD.BAT} | 266 +++---- projects/dataforth-dos/batch-files/REBOOT.BAT | 332 ++++----- projects/dataforth-dos/batch-files/STAGE.BAT | 490 ++++++------ .../dataforth-dos/batch-files/STARTNET.BAT | 150 ++-- .../dataforth-dos/batch-files/TEST-NWTOC.BAT | 10 +- .../batch-files/UPDATE-PRODSW.BAT | 20 +- projects/dataforth-dos/batch-files/UPDATE.BAT | 398 +++++----- .../batch-files/deploy-to-nas.sh | 32 + .../dataforth-dos/batch-files/validate-dos.sh | 106 +++ 23 files changed, 3111 insertions(+), 2869 deletions(-) rename projects/dataforth-dos/batch-files/{ATESYNC-DEBUG.BAT => ATESYNCD.BAT} (80%) rename projects/dataforth-dos/batch-files/{CTONW-DEBUG.BAT => CTONWD.BAT} (94%) create mode 100644 projects/dataforth-dos/batch-files/DIAGBK.BAT rename projects/dataforth-dos/batch-files/{NWTOC-DEBUG.BAT => NWTOCD.BAT} (94%) create mode 100644 projects/dataforth-dos/batch-files/deploy-to-nas.sh create mode 100755 projects/dataforth-dos/batch-files/validate-dos.sh diff --git a/.claude/agents/dos-coding.md b/.claude/agents/dos-coding.md index 0de9175..ee0bfd0 100644 --- a/.claude/agents/dos-coding.md +++ b/.claude/agents/dos-coding.md @@ -284,6 +284,73 @@ IF NOT EXIST dest\file.txt GOTO ERROR --- +### RULE 19: DOS Line Endings (CR/LF) Required +**Status:** CONFIRMED - LF-only files cause parse errors + +DOS 6.22 requires CR/LF (Carriage Return + Line Feed) line endings: +- CR = 0x0D (hex) = \r +- LF = 0x0A (hex) = \n +- DOS needs: CR+LF (0x0D 0x0A) +- Unix uses: LF only (0x0A) - WILL NOT WORK + +```bash +# [BAD] Unix line endings (LF only) +# File created on Mac/Linux without conversion + +# [GOOD] Convert to DOS line endings before deployment +# On Mac/Linux: +unix2dos FILENAME.BAT +# Or with sed: +sed -i 's/$/\r/' FILENAME.BAT +# Or with Perl: +perl -pi -e 's/\n/\r\n/' FILENAME.BAT +``` + +**Symptoms of wrong line endings:** +- Commands run together on same line +- "Bad command or file name" on valid commands +- Script appears to do nothing +- Unexpected behavior at label jumps + +**CRITICAL:** Always convert files to DOS line endings (CR/LF) before copying to DOS machines. + +--- + +### RULE 20: No Trailing Spaces in SET Statements +**Status:** CONFIRMED - Causes "Too many parameters" errors + +Trailing spaces in SET commands become part of the variable value: + +```batch +REM [BAD] Trailing space after value +SET MACHINE=TS-3R +REM %MACHINE% = "TS-3R " (with trailing space!) +REM T:\%MACHINE%\LOGS becomes T:\TS-3R \LOGS - FAILS! + +REM [GOOD] No trailing space +SET MACHINE=TS-3R +REM %MACHINE% = "TS-3R" (no space) +REM T:\%MACHINE%\LOGS becomes T:\TS-3R\LOGS - CORRECT +``` + +**Symptoms:** +- "Too many parameters" on MD, COPY, XCOPY commands using the variable +- Paths appear correct in ECHO but fail in actual commands +- Mysterious failures that work when paths are hardcoded + +**Prevention:** +```bash +# Check for trailing spaces in SET statements +grep -E "^SET [A-Z]+=.* $" *.BAT + +# Strip trailing whitespace from all lines before deployment +sed -i 's/[[:space:]]*$//' *.BAT +``` + +**CRITICAL:** Always strip trailing whitespace from batch files before deployment. + +--- + ## Validation Checklist Before deploying ANY DOS batch file, verify: @@ -303,6 +370,8 @@ Before deploying ANY DOS batch file, verify: - [ ] Using COPY instead of XCOPY where possible - [ ] Environment variables quoted in comparisons - [ ] Clean up SET variables at end +- [ ] **CR/LF line endings (DOS format, not Unix LF)** +- [ ] **No trailing spaces in SET statements or any lines** --- @@ -432,17 +501,22 @@ FOR %%V IN (set) DO command - Loop (simple use only) | Error Message | Likely Cause | Fix | |---------------|--------------|-----| -| Bad command or file name | CALL :label, %DATE%, %TIME%, square brackets | Remove NT+ syntax | +| Bad command or file name | CALL :label, %DATE%, %TIME%, square brackets, wrong line endings | Remove NT+ syntax, convert to CR/LF | | Too many parameters | 2>NUL, square brackets in ECHO | Remove stderr redirect, remove brackets | | Invalid switch | XCOPY /I, XCOPY /D | Use COPY or remove flag | | Invalid number of parameters | XCOPY /D without date | Add date or use COPY | | Syntax error | Various NT+ constructs | Review all rules | +| Commands run together | Unix LF line endings instead of DOS CR/LF | Convert with unix2dos | +| Script does nothing | Wrong line endings causing parse failure | Convert with unix2dos | +| Too many parameters on paths | Trailing space in SET variable value | Strip trailing whitespace: `sed -i 's/[[:space:]]*$//'` | --- ## Version History - 2026-01-21: Initial creation with 18 rules +- 2026-01-21: Added Rule 19 - CR/LF line endings requirement +- 2026-01-21: Added Rule 20 - No trailing spaces in SET statements - Rules confirmed through testing on actual DOS 6.22 machines --- diff --git a/projects/dataforth-dos/batch-files/ATESYNC.BAT b/projects/dataforth-dos/batch-files/ATESYNC.BAT index 44d00d0..fbe0283 100644 --- a/projects/dataforth-dos/batch-files/ATESYNC.BAT +++ b/projects/dataforth-dos/batch-files/ATESYNC.BAT @@ -1,87 +1,87 @@ -@ECHO OFF -REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent) -REM Version: 1.1 - DOS 6.22 compatible -REM Last modified: 2026-01-21 -REM -REM Called from AUTOEXEC.BAT after network is up -REM Usage: ATESYNC TS-27 -REM or: ATESYNC (uses MACHINE environment variable) - -REM Get machine name from parameter or environment -IF NOT "%1"=="" SET MACHINE=%1 -IF "%MACHINE%"=="" GOTO NO_MACHINE - -REM Verify T: drive is available -IF NOT EXIST T:\*.* GOTO NO_DRIVE - -REM Verify machine folder exists on network -IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE - -:START_SYNC -ECHO. -ECHO ************************************************************ -ECHO ATESYNC: %MACHINE% -ECHO ************************************************************ -ECHO. - -REM Step 1: Upload test results FIRST (before downloading updates) -ECHO Sending test results to network... -CALL CTONW.BAT -ECHO. - -REM Step 2: Download software updates -ECHO Getting updates from network... -CALL NWTOC.BAT -ECHO. - -ECHO ************************************************************ -ECHO ATESYNC Complete: %MACHINE% -ECHO ************************************************************ -ECHO. -GOTO END - -:CREATE_MACHINE -ECHO Creating machine folder T:\%MACHINE% -MD T:\%MACHINE% -IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR -MD T:\%MACHINE%\LOGS -MD T:\%MACHINE%\LOGS\5BLOG -MD T:\%MACHINE%\LOGS\7BLOG -MD T:\%MACHINE%\LOGS\8BLOG -MD T:\%MACHINE%\LOGS\DSCLOG -MD T:\%MACHINE%\LOGS\HVLOG -MD T:\%MACHINE%\LOGS\PWRLOG -MD T:\%MACHINE%\LOGS\SCTLOG -MD T:\%MACHINE%\LOGS\VASLOG -MD T:\%MACHINE%\ProdSW -MD T:\%MACHINE%\Reports -ECHO Machine folder created -GOTO START_SYNC - -:NO_MACHINE -ECHO. -ECHO ************************************************************ -ECHO ERROR: MACHINE not set -ECHO. -ECHO Usage: ATESYNC TS-27 -ECHO or: SET MACHINE=TS-27 -ECHO ATESYNC -ECHO ************************************************************ -PAUSE -GOTO END - -:NO_DRIVE -ECHO. -ECHO ERROR: T: drive not available -ECHO Run STARTNET.BAT first -PAUSE -GOTO END - -:MACHINE_ERROR -ECHO. -ECHO ERROR: Could not create T:\%MACHINE% -ECHO Check network permissions -PAUSE -GOTO END - -:END +@ECHO OFF +REM ATESYNC.BAT - ATE Sync Orchestrator (ARCHBAT equivalent) +REM Version: 1.1 - DOS 6.22 compatible +REM Last modified: 2026-01-21 +REM +REM Called from AUTOEXEC.BAT after network is up +REM Usage: ATESYNC TS-27 +REM or: ATESYNC (uses MACHINE environment variable) + +REM Get machine name from parameter or environment +IF NOT "%1"=="" SET MACHINE=%1 +IF "%MACHINE%"=="" GOTO NO_MACHINE + +REM Verify T: drive is available +IF NOT EXIST T:\*.* GOTO NO_DRIVE + +REM Verify machine folder exists on network +IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE + +:START_SYNC +ECHO. +ECHO ************************************************************ +ECHO ATESYNC: %MACHINE% +ECHO ************************************************************ +ECHO. + +REM Step 1: Upload test results FIRST (before downloading updates) +ECHO Sending test results to network... +CALL CTONW.BAT +ECHO. + +REM Step 2: Download software updates +ECHO Getting updates from network... +CALL NWTOC.BAT +ECHO. + +ECHO ************************************************************ +ECHO ATESYNC Complete: %MACHINE% +ECHO ************************************************************ +ECHO. +GOTO END + +:CREATE_MACHINE +ECHO Creating machine folder T:\%MACHINE% +MD T:\%MACHINE% +IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR +MD T:\%MACHINE%\LOGS +MD T:\%MACHINE%\LOGS\5BLOG +MD T:\%MACHINE%\LOGS\7BLOG +MD T:\%MACHINE%\LOGS\8BLOG +MD T:\%MACHINE%\LOGS\DSCLOG +MD T:\%MACHINE%\LOGS\HVLOG +MD T:\%MACHINE%\LOGS\PWRLOG +MD T:\%MACHINE%\LOGS\SCTLOG +MD T:\%MACHINE%\LOGS\VASLOG +MD T:\%MACHINE%\ProdSW +MD T:\%MACHINE%\Reports +ECHO Machine folder created +GOTO START_SYNC + +:NO_MACHINE +ECHO. +ECHO ************************************************************ +ECHO ERROR: MACHINE not set +ECHO. +ECHO Usage: ATESYNC TS-27 +ECHO or: SET MACHINE=TS-27 +ECHO ATESYNC +ECHO ************************************************************ +PAUSE +GOTO END + +:NO_DRIVE +ECHO. +ECHO ERROR: T: drive not available +ECHO Run STARTNET.BAT first +PAUSE +GOTO END + +:MACHINE_ERROR +ECHO. +ECHO ERROR: Could not create T:\%MACHINE% +ECHO Check network permissions +PAUSE +GOTO END + +:END diff --git a/projects/dataforth-dos/batch-files/ATESYNC-DEBUG.BAT b/projects/dataforth-dos/batch-files/ATESYNCD.BAT similarity index 80% rename from projects/dataforth-dos/batch-files/ATESYNC-DEBUG.BAT rename to projects/dataforth-dos/batch-files/ATESYNCD.BAT index 45c254c..29cfb62 100644 --- a/projects/dataforth-dos/batch-files/ATESYNC-DEBUG.BAT +++ b/projects/dataforth-dos/batch-files/ATESYNCD.BAT @@ -1,129 +1,130 @@ -@ECHO OFF -REM ATESYNC-DEBUG.BAT - ATE Sync with diagnostic pauses -REM Version: 1.0 - Debug version for recording boot process -REM Last modified: 2026-01-21 -REM -REM This version pauses at each step for video recording - -IF NOT "%1"=="" SET MACHINE=%1 -IF "%MACHINE%"=="" GOTO NO_MACHINE - -ECHO. -ECHO ============================================================== -ECHO DEBUG MODE: ATESYNC -ECHO ============================================================== -ECHO. -ECHO STEP 0: Machine name set -ECHO MACHINE = %MACHINE% -ECHO. -ECHO Press any key to continue to Step 1... -PAUSE - -REM Verify T: drive -ECHO. -ECHO ============================================================== -ECHO STEP 1: Checking T: drive -ECHO ============================================================== -IF NOT EXIST T:\*.* GOTO NO_DRIVE -ECHO T: drive is accessible -ECHO. -ECHO Press any key to continue to Step 2... -PAUSE - -REM Check machine folder -ECHO. -ECHO ============================================================== -ECHO STEP 2: Checking machine folder T:\%MACHINE% -ECHO ============================================================== -IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE -ECHO Machine folder exists -ECHO. -ECHO Press any key to continue to Step 3... -PAUSE -GOTO START_SYNC - -:CREATE_MACHINE -ECHO Machine folder not found - creating... -MD T:\%MACHINE% -IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR -MD T:\%MACHINE%\LOGS -MD T:\%MACHINE%\LOGS\5BLOG -MD T:\%MACHINE%\LOGS\7BLOG -MD T:\%MACHINE%\LOGS\8BLOG -MD T:\%MACHINE%\LOGS\DSCLOG -MD T:\%MACHINE%\LOGS\HVLOG -MD T:\%MACHINE%\LOGS\PWRLOG -MD T:\%MACHINE%\LOGS\SCTLOG -MD T:\%MACHINE%\LOGS\VASLOG -MD T:\%MACHINE%\ProdSW -MD T:\%MACHINE%\Reports -ECHO Machine folder structure created -ECHO. -ECHO Press any key to continue to Step 3... -PAUSE - -:START_SYNC -ECHO. -ECHO ============================================================== -ECHO STEP 3: Starting CTONW (Upload test results) -ECHO ============================================================== -ECHO About to call: CTONW-DEBUG.BAT -ECHO. -ECHO Press any key to run CTONW-DEBUG... -PAUSE -CALL CTONW-DEBUG.BAT -ECHO. -ECHO CTONW-DEBUG completed -ECHO. -ECHO Press any key to continue to Step 4... -PAUSE - -ECHO. -ECHO ============================================================== -ECHO STEP 4: Starting NWTOC (Download updates) -ECHO ============================================================== -ECHO About to call: NWTOC-DEBUG.BAT -ECHO. -ECHO Press any key to run NWTOC-DEBUG... -PAUSE -CALL NWTOC-DEBUG.BAT -ECHO. -ECHO NWTOC-DEBUG completed -ECHO. -ECHO Press any key to finish... -PAUSE - -ECHO. -ECHO ============================================================== -ECHO ATESYNC-DEBUG Complete: %MACHINE% -ECHO ============================================================== -ECHO. -GOTO END - -:NO_MACHINE -ECHO. -ECHO ============================================================== -ECHO ERROR at STEP 0: MACHINE not set -ECHO ============================================================== -ECHO. -ECHO Usage: ATESYNC-DEBUG TS-27 -PAUSE -GOTO END - -:NO_DRIVE -ECHO. -ECHO ============================================================== -ECHO ERROR at STEP 1: T: drive not available -ECHO ============================================================== -PAUSE -GOTO END - -:MACHINE_ERROR -ECHO. -ECHO ============================================================== -ECHO ERROR at STEP 2: Could not create machine folder -ECHO ============================================================== -PAUSE -GOTO END - -:END +@ECHO OFF +REM ATESYNCD.BAT - ATE Sync with diagnostic pauses (8.3 name) +REM Version: 1.1 - Debug version for recording boot process +REM Last modified: 2026-01-21 +REM +REM This version pauses at each step for video recording +REM Usage: ATESYNCD TS-3R + +IF NOT "%1"=="" SET MACHINE=%1 +IF "%MACHINE%"=="" GOTO NO_MACHINE + +ECHO. +ECHO ============================================================== +ECHO DEBUG MODE: ATESYNCD +ECHO ============================================================== +ECHO. +ECHO STEP 0: Machine name set +ECHO MACHINE = %MACHINE% +ECHO. +ECHO Press any key to continue to Step 1... +PAUSE + +REM Verify T: drive +ECHO. +ECHO ============================================================== +ECHO STEP 1: Checking T: drive +ECHO ============================================================== +IF NOT EXIST T:\*.* GOTO NO_DRIVE +ECHO T: drive is accessible +ECHO. +ECHO Press any key to continue to Step 2... +PAUSE + +REM Check machine folder +ECHO. +ECHO ============================================================== +ECHO STEP 2: Checking machine folder T:\%MACHINE% +ECHO ============================================================== +IF NOT EXIST T:\%MACHINE%\*.* GOTO CREATE_MACHINE +ECHO Machine folder exists +ECHO. +ECHO Press any key to continue to Step 3... +PAUSE +GOTO START_SYNC + +:CREATE_MACHINE +ECHO Machine folder not found - creating... +MD T:\%MACHINE% +IF NOT EXIST T:\%MACHINE%\*.* GOTO MACHINE_ERROR +MD T:\%MACHINE%\LOGS +MD T:\%MACHINE%\LOGS\5BLOG +MD T:\%MACHINE%\LOGS\7BLOG +MD T:\%MACHINE%\LOGS\8BLOG +MD T:\%MACHINE%\LOGS\DSCLOG +MD T:\%MACHINE%\LOGS\HVLOG +MD T:\%MACHINE%\LOGS\PWRLOG +MD T:\%MACHINE%\LOGS\SCTLOG +MD T:\%MACHINE%\LOGS\VASLOG +MD T:\%MACHINE%\ProdSW +MD T:\%MACHINE%\Reports +ECHO Machine folder structure created +ECHO. +ECHO Press any key to continue to Step 3... +PAUSE + +:START_SYNC +ECHO. +ECHO ============================================================== +ECHO STEP 3: Starting CTONWD (Upload test results) +ECHO ============================================================== +ECHO About to call: CTONWD.BAT +ECHO. +ECHO Press any key to run CTONWD... +PAUSE +CALL CTONWD.BAT +ECHO. +ECHO CTONWD completed +ECHO. +ECHO Press any key to continue to Step 4... +PAUSE + +ECHO. +ECHO ============================================================== +ECHO STEP 4: Starting NWTOCD (Download updates) +ECHO ============================================================== +ECHO About to call: NWTOCD.BAT +ECHO. +ECHO Press any key to run NWTOCD... +PAUSE +CALL NWTOCD.BAT +ECHO. +ECHO NWTOCD completed +ECHO. +ECHO Press any key to finish... +PAUSE + +ECHO. +ECHO ============================================================== +ECHO ATESYNCD Complete: %MACHINE% +ECHO ============================================================== +ECHO. +GOTO END + +:NO_MACHINE +ECHO. +ECHO ============================================================== +ECHO ERROR at STEP 0: MACHINE not set +ECHO ============================================================== +ECHO. +ECHO Usage: ATESYNCD TS-3R +PAUSE +GOTO END + +:NO_DRIVE +ECHO. +ECHO ============================================================== +ECHO ERROR at STEP 1: T: drive not available +ECHO ============================================================== +PAUSE +GOTO END + +:MACHINE_ERROR +ECHO. +ECHO ============================================================== +ECHO ERROR at STEP 2: Could not create machine folder +ECHO ============================================================== +PAUSE +GOTO END + +:END diff --git a/projects/dataforth-dos/batch-files/AUTOEXEC.BAT b/projects/dataforth-dos/batch-files/AUTOEXEC.BAT index 0c5ae2b..5078e62 100644 --- a/projects/dataforth-dos/batch-files/AUTOEXEC.BAT +++ b/projects/dataforth-dos/batch-files/AUTOEXEC.BAT @@ -1,81 +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 +@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 diff --git a/projects/dataforth-dos/batch-files/CTONW-DEBUG.BAT b/projects/dataforth-dos/batch-files/CTONWD.BAT similarity index 94% rename from projects/dataforth-dos/batch-files/CTONW-DEBUG.BAT rename to projects/dataforth-dos/batch-files/CTONWD.BAT index 0015e76..c900d60 100644 --- a/projects/dataforth-dos/batch-files/CTONW-DEBUG.BAT +++ b/projects/dataforth-dos/batch-files/CTONWD.BAT @@ -1,135 +1,135 @@ -@ECHO OFF -REM CTONW-DEBUG.BAT - Upload with diagnostic pauses -REM Version: 1.0 - Debug version for recording -REM Last modified: 2026-01-21 - -ECHO. -ECHO ============================================================== -ECHO DEBUG: CTONW - Computer to Network Upload -ECHO ============================================================== -ECHO. - -IF "%MACHINE%"=="" GOTO NO_MACHINE - -ECHO CTONW Step 0: Verifying prerequisites -ECHO MACHINE = %MACHINE% -IF NOT EXIST T:\*.* GOTO NO_DRIVE -ECHO T: drive OK -IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER -ECHO T:\%MACHINE% OK -ECHO. -PAUSE - -IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE - -ECHO. -ECHO CTONW Step 1: Creating LOGS directories on T:\%MACHINE%\LOGS -IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS -IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG -IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG -IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG -IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG -IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG -IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG -IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG -IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG -ECHO Directories ready -PAUSE - -ECHO. -ECHO CTONW Step 2: Uploading 5BLOG -IF EXIST C:\ATE\5BLOG\*.DAT ECHO Found files in C:\ATE\5BLOG -IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG -IF NOT EXIST C:\ATE\5BLOG\*.DAT ECHO No files in C:\ATE\5BLOG -PAUSE - -ECHO. -ECHO CTONW Step 3: Uploading 7BLOG -IF EXIST C:\ATE\7BLOG\*.DAT ECHO Found DAT files in C:\ATE\7BLOG -IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG -IF EXIST C:\ATE\7BLOG\*.SHT ECHO Found SHT files in C:\ATE\7BLOG -IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG -IF NOT EXIST C:\ATE\7BLOG\*.* ECHO No files in C:\ATE\7BLOG -PAUSE - -ECHO. -ECHO CTONW Step 4: Uploading 8BLOG -IF EXIST C:\ATE\8BLOG\*.DAT ECHO Found files in C:\ATE\8BLOG -IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG -IF NOT EXIST C:\ATE\8BLOG\*.DAT ECHO No files in C:\ATE\8BLOG -PAUSE - -ECHO. -ECHO CTONW Step 5: Uploading DSCLOG -IF EXIST C:\ATE\DSCLOG\*.DAT ECHO Found files in C:\ATE\DSCLOG -IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG -IF NOT EXIST C:\ATE\DSCLOG\*.DAT ECHO No files in C:\ATE\DSCLOG -PAUSE - -ECHO. -ECHO CTONW Step 6: Uploading HVLOG -IF EXIST C:\ATE\HVLOG\*.DAT ECHO Found files in C:\ATE\HVLOG -IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG -IF NOT EXIST C:\ATE\HVLOG\*.DAT ECHO No files in C:\ATE\HVLOG -PAUSE - -ECHO. -ECHO CTONW Step 7: Uploading PWRLOG -IF EXIST C:\ATE\PWRLOG\*.DAT ECHO Found files in C:\ATE\PWRLOG -IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG -IF NOT EXIST C:\ATE\PWRLOG\*.DAT ECHO No files in C:\ATE\PWRLOG -PAUSE - -ECHO. -ECHO CTONW Step 8: Uploading SCTLOG -IF EXIST C:\ATE\SCTLOG\*.DAT ECHO Found files in C:\ATE\SCTLOG -IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG -IF NOT EXIST C:\ATE\SCTLOG\*.DAT ECHO No files in C:\ATE\SCTLOG -PAUSE - -ECHO. -ECHO CTONW Step 9: Uploading VASLOG -IF EXIST C:\ATE\VASLOG\*.DAT ECHO Found files in C:\ATE\VASLOG -IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG -IF NOT EXIST C:\ATE\VASLOG\*.DAT ECHO No files in C:\ATE\VASLOG -PAUSE - -ECHO. -ECHO CTONW Step 10: Uploading Reports -IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports -IF EXIST C:\Reports\*.TXT ECHO Found TXT files in C:\Reports -IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports -IF NOT EXIST C:\Reports\*.TXT ECHO No TXT files in C:\Reports -PAUSE - -ECHO. -ECHO ============================================================== -ECHO CTONW-DEBUG Complete -ECHO ============================================================== -GOTO END - -:SKIP_ATE -ECHO. -ECHO CTONW: No C:\ATE directory found - skipping upload -PAUSE -GOTO END - -:NO_MACHINE -ECHO. -ECHO CTONW ERROR: MACHINE variable not set -PAUSE -GOTO END - -:NO_DRIVE -ECHO. -ECHO CTONW ERROR: T: drive not available -PAUSE -GOTO END - -:NO_FOLDER -ECHO. -ECHO CTONW ERROR: T:\%MACHINE% folder not found -PAUSE -GOTO END - -:END +@ECHO OFF +REM CTONWD.BAT - Upload with diagnostic pauses (8.3 name) +REM Version: 1.1 - Debug version for recording +REM Last modified: 2026-01-21 + +ECHO. +ECHO ============================================================== +ECHO DEBUG: CTONW - Computer to Network Upload +ECHO ============================================================== +ECHO. + +IF "%MACHINE%"=="" GOTO NO_MACHINE + +ECHO CTONW Step 0: Verifying prerequisites +ECHO MACHINE = %MACHINE% +IF NOT EXIST T:\*.* GOTO NO_DRIVE +ECHO T: drive OK +IF NOT EXIST T:\%MACHINE%\*.* GOTO NO_FOLDER +ECHO T:\%MACHINE% OK +ECHO. +PAUSE + +IF NOT EXIST C:\ATE\*.* GOTO SKIP_ATE + +ECHO. +ECHO CTONW Step 1: Creating LOGS directories on T:\%MACHINE%\LOGS +IF NOT EXIST T:\%MACHINE%\LOGS\*.* MD T:\%MACHINE%\LOGS +IF NOT EXIST T:\%MACHINE%\LOGS\5BLOG\*.* MD T:\%MACHINE%\LOGS\5BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\7BLOG\*.* MD T:\%MACHINE%\LOGS\7BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\8BLOG\*.* MD T:\%MACHINE%\LOGS\8BLOG +IF NOT EXIST T:\%MACHINE%\LOGS\DSCLOG\*.* MD T:\%MACHINE%\LOGS\DSCLOG +IF NOT EXIST T:\%MACHINE%\LOGS\HVLOG\*.* MD T:\%MACHINE%\LOGS\HVLOG +IF NOT EXIST T:\%MACHINE%\LOGS\PWRLOG\*.* MD T:\%MACHINE%\LOGS\PWRLOG +IF NOT EXIST T:\%MACHINE%\LOGS\SCTLOG\*.* MD T:\%MACHINE%\LOGS\SCTLOG +IF NOT EXIST T:\%MACHINE%\LOGS\VASLOG\*.* MD T:\%MACHINE%\LOGS\VASLOG +ECHO Directories ready +PAUSE + +ECHO. +ECHO CTONW Step 2: Uploading 5BLOG +IF EXIST C:\ATE\5BLOG\*.DAT ECHO Found files in C:\ATE\5BLOG +IF EXIST C:\ATE\5BLOG\*.DAT COPY C:\ATE\5BLOG\*.DAT T:\%MACHINE%\LOGS\5BLOG +IF NOT EXIST C:\ATE\5BLOG\*.DAT ECHO No files in C:\ATE\5BLOG +PAUSE + +ECHO. +ECHO CTONW Step 3: Uploading 7BLOG +IF EXIST C:\ATE\7BLOG\*.DAT ECHO Found DAT files in C:\ATE\7BLOG +IF EXIST C:\ATE\7BLOG\*.DAT COPY C:\ATE\7BLOG\*.DAT T:\%MACHINE%\LOGS\7BLOG +IF EXIST C:\ATE\7BLOG\*.SHT ECHO Found SHT files in C:\ATE\7BLOG +IF EXIST C:\ATE\7BLOG\*.SHT COPY C:\ATE\7BLOG\*.SHT T:\%MACHINE%\LOGS\7BLOG +IF NOT EXIST C:\ATE\7BLOG\*.* ECHO No files in C:\ATE\7BLOG +PAUSE + +ECHO. +ECHO CTONW Step 4: Uploading 8BLOG +IF EXIST C:\ATE\8BLOG\*.DAT ECHO Found files in C:\ATE\8BLOG +IF EXIST C:\ATE\8BLOG\*.DAT COPY C:\ATE\8BLOG\*.DAT T:\%MACHINE%\LOGS\8BLOG +IF NOT EXIST C:\ATE\8BLOG\*.DAT ECHO No files in C:\ATE\8BLOG +PAUSE + +ECHO. +ECHO CTONW Step 5: Uploading DSCLOG +IF EXIST C:\ATE\DSCLOG\*.DAT ECHO Found files in C:\ATE\DSCLOG +IF EXIST C:\ATE\DSCLOG\*.DAT COPY C:\ATE\DSCLOG\*.DAT T:\%MACHINE%\LOGS\DSCLOG +IF NOT EXIST C:\ATE\DSCLOG\*.DAT ECHO No files in C:\ATE\DSCLOG +PAUSE + +ECHO. +ECHO CTONW Step 6: Uploading HVLOG +IF EXIST C:\ATE\HVLOG\*.DAT ECHO Found files in C:\ATE\HVLOG +IF EXIST C:\ATE\HVLOG\*.DAT COPY C:\ATE\HVLOG\*.DAT T:\%MACHINE%\LOGS\HVLOG +IF NOT EXIST C:\ATE\HVLOG\*.DAT ECHO No files in C:\ATE\HVLOG +PAUSE + +ECHO. +ECHO CTONW Step 7: Uploading PWRLOG +IF EXIST C:\ATE\PWRLOG\*.DAT ECHO Found files in C:\ATE\PWRLOG +IF EXIST C:\ATE\PWRLOG\*.DAT COPY C:\ATE\PWRLOG\*.DAT T:\%MACHINE%\LOGS\PWRLOG +IF NOT EXIST C:\ATE\PWRLOG\*.DAT ECHO No files in C:\ATE\PWRLOG +PAUSE + +ECHO. +ECHO CTONW Step 8: Uploading SCTLOG +IF EXIST C:\ATE\SCTLOG\*.DAT ECHO Found files in C:\ATE\SCTLOG +IF EXIST C:\ATE\SCTLOG\*.DAT COPY C:\ATE\SCTLOG\*.DAT T:\%MACHINE%\LOGS\SCTLOG +IF NOT EXIST C:\ATE\SCTLOG\*.DAT ECHO No files in C:\ATE\SCTLOG +PAUSE + +ECHO. +ECHO CTONW Step 9: Uploading VASLOG +IF EXIST C:\ATE\VASLOG\*.DAT ECHO Found files in C:\ATE\VASLOG +IF EXIST C:\ATE\VASLOG\*.DAT COPY C:\ATE\VASLOG\*.DAT T:\%MACHINE%\LOGS\VASLOG +IF NOT EXIST C:\ATE\VASLOG\*.DAT ECHO No files in C:\ATE\VASLOG +PAUSE + +ECHO. +ECHO CTONW Step 10: Uploading Reports +IF NOT EXIST T:\%MACHINE%\Reports\*.* MD T:\%MACHINE%\Reports +IF EXIST C:\Reports\*.TXT ECHO Found TXT files in C:\Reports +IF EXIST C:\Reports\*.TXT COPY C:\Reports\*.TXT T:\%MACHINE%\Reports +IF NOT EXIST C:\Reports\*.TXT ECHO No TXT files in C:\Reports +PAUSE + +ECHO. +ECHO ============================================================== +ECHO CTONW-DEBUG Complete +ECHO ============================================================== +GOTO END + +:SKIP_ATE +ECHO. +ECHO CTONW: No C:\ATE directory found - skipping upload +PAUSE +GOTO END + +:NO_MACHINE +ECHO. +ECHO CTONW ERROR: MACHINE variable not set +PAUSE +GOTO END + +:NO_DRIVE +ECHO. +ECHO CTONW ERROR: T: drive not available +PAUSE +GOTO END + +:NO_FOLDER +ECHO. +ECHO CTONW ERROR: T:\%MACHINE% folder not found +PAUSE +GOTO END + +:END diff --git a/projects/dataforth-dos/batch-files/CTONWTXT.BAT b/projects/dataforth-dos/batch-files/CTONWTXT.BAT index 9bf602c..7247e5c 100644 --- a/projects/dataforth-dos/batch-files/CTONWTXT.BAT +++ b/projects/dataforth-dos/batch-files/CTONWTXT.BAT @@ -1,34 +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 ..................................................... - - +@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 ..................................................... + + diff --git a/projects/dataforth-dos/batch-files/DEPLOY.BAT b/projects/dataforth-dos/batch-files/DEPLOY.BAT index 02a8f21..c271abe 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY.BAT @@ -26,7 +26,7 @@ REM Create directories (ignore errors with >NUL) MD C:\BAT >NUL MD T:\%MACHINE% >NUL -ECHO [1/2] Copying batch files to C:\BAT... +ECHO (1/2) Copying batch files to C:\BAT... COPY T:\COMMON\ProdSW\NWTOC.BAT C:\BAT >NUL COPY T:\COMMON\ProdSW\CTONW.BAT C:\BAT >NUL COPY T:\COMMON\ProdSW\UPDATE.BAT C:\BAT >NUL @@ -36,7 +36,7 @@ COPY T:\COMMON\ProdSW\REBOOT.BAT C:\BAT >NUL ECHO Batch files installed ECHO. -ECHO [2/2] Installing AUTOEXEC.BAT... +ECHO (2/2) Installing AUTOEXEC.BAT... REM Create AUTOEXEC.BAT with machine name ECHO @ECHO OFF > C:\AUTOEXEC.BAT ECHO REM Dataforth Test Machine - DOS 6.22 >> C:\AUTOEXEC.BAT @@ -56,7 +56,7 @@ ECHO IF EXIST C:\BAT\NWTOC.BAT CALL C:\BAT\NWTOC.BAT >> C:\AUTOEXEC.BAT ECHO IF EXIST C:\BAT\CTONW.BAT CALL C:\BAT\CTONW.BAT >> C:\AUTOEXEC.BAT ECHO GOTO READY >> C:\AUTOEXEC.BAT ECHO :NONET >> C:\AUTOEXEC.BAT -ECHO ECHO [ERROR] Network not available >> C:\AUTOEXEC.BAT +ECHO ECHO ERROR: Network not available >> C:\AUTOEXEC.BAT ECHO :READY >> C:\AUTOEXEC.BAT ECHO ECHO. >> C:\AUTOEXEC.BAT ECHO ECHO System Ready >> C:\AUTOEXEC.BAT @@ -75,7 +75,7 @@ GOTO END :NO_MACHINE ECHO. -ECHO [ERROR] Machine name not provided +ECHO ERROR: Machine name not provided ECHO. ECHO Usage: DEPLOY.BAT machine-name ECHO Example: DEPLOY.BAT TS-4R diff --git a/projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT b/projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT index 373d989..002ea01 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY_FROM_AD2.BAT @@ -1,345 +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= +@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 of 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 of 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 of 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 of 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 of 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= diff --git a/projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT b/projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT index ab847be..f288180 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY_FROM_NAS.BAT @@ -1,351 +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= +@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 of 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 of 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 of 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 of 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 of 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= diff --git a/projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT b/projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT index ab847be..f288180 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY_TEST.BAT @@ -1,351 +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= +@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 of 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 of 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 of 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 of 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 of 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= diff --git a/projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT b/projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT index 373d989..002ea01 100644 --- a/projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT +++ b/projects/dataforth-dos/batch-files/DEPLOY_VERIFY.BAT @@ -1,345 +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= +@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 of 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 of 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 of 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 of 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 of 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= diff --git a/projects/dataforth-dos/batch-files/DIAGBK.BAT b/projects/dataforth-dos/batch-files/DIAGBK.BAT new file mode 100644 index 0000000..156d3d5 --- /dev/null +++ b/projects/dataforth-dos/batch-files/DIAGBK.BAT @@ -0,0 +1,29 @@ +@ECHO OFF +REM DIAGBK.BAT - Diagnostic Backup +REM Version: 1.1 - Simplified for DOS 6.22 + +ECHO. +ECHO Diagnostic Backup +ECHO. + +MD T:\%MACHINE%\DIAG +MD T:\%MACHINE%\DIAG\BAT + +ECHO Copying AUTOEXEC.BAT +COPY C:\AUTOEXEC.BAT T:\%MACHINE%\DIAG + +ECHO Copying CONFIG.SYS +COPY C:\CONFIG.SYS T:\%MACHINE%\DIAG + +ECHO Copying STARTNET.BAT +COPY C:\STARTNET.BAT T:\%MACHINE%\DIAG + +ECHO Copying C:\BAT files +COPY C:\BAT\*.* T:\%MACHINE%\DIAG\BAT + +ECHO Copying C:\BATCH files +COPY C:\BATCH\*.* T:\%MACHINE%\DIAG\BAT + +ECHO. +ECHO Done - files in T:\%MACHINE%\DIAG +ECHO. diff --git a/projects/dataforth-dos/batch-files/DOSTEST.BAT b/projects/dataforth-dos/batch-files/DOSTEST.BAT index f6d8f14..6598e02 100644 --- a/projects/dataforth-dos/batch-files/DOSTEST.BAT +++ b/projects/dataforth-dos/batch-files/DOSTEST.BAT @@ -1,167 +1,167 @@ -@ECHO OFF -REM DOSTEST.BAT - Test DOS batch file deployment -REM Run this on the DOS machine after deploying new files -REM Version: 1.2 - DOS 6.22 compatible (removed brackets, 2>NUL, NUL checks) -REM Last modified: 2026-01-21 - -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:\BAT\*.* ECHO WARN: C:\BAT directory missing - run MD C:\BAT -IF EXIST C:\BAT\*.* ECHO OK: C:\BAT directory exists - -REM ================================================================== -REM TEST 3: Check PATH variable -REM ================================================================== - -ECHO. -ECHO (TEST 3) Checking PATH... -ECHO PATH=%PATH% - -REM ================================================================== -REM TEST 4: Check T: drive -REM ================================================================== - -ECHO. -ECHO (TEST 4) Checking T: drive... - -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... - -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%\*.* MD T:\%MACHINE% -IF NOT EXIST T:\%MACHINE%\*.* GOTO TEST6_FAIL - -REM Try to create test subdirectory -IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST -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 - -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. - -IF "%MACHINE%"=="" GOTO SUMMARY_FAIL -IF NOT EXIST C:\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:\BAT directory: MD C:\BAT -ECHO. - -:END -ECHO ============================================================== -ECHO. -PAUSE +@ECHO OFF +REM DOSTEST.BAT - Test DOS batch file deployment +REM Run this on the DOS machine after deploying new files +REM Version: 1.2 - DOS 6.22 compatible (removed brackets, 2>NUL, NUL checks) +REM Last modified: 2026-01-21 + +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:\BAT\*.* ECHO WARN: C:\BAT directory missing - run MD C:\BAT +IF EXIST C:\BAT\*.* ECHO OK: C:\BAT directory exists + +REM ================================================================== +REM TEST 3: Check PATH variable +REM ================================================================== + +ECHO. +ECHO (TEST 3) Checking PATH... +ECHO PATH=%PATH% + +REM ================================================================== +REM TEST 4: Check T: drive +REM ================================================================== + +ECHO. +ECHO (TEST 4) Checking T: drive... + +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... + +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%\*.* MD T:\%MACHINE% +IF NOT EXIST T:\%MACHINE%\*.* GOTO TEST6_FAIL + +REM Try to create test subdirectory +IF NOT EXIST T:\%MACHINE%\TEST\*.* MD T:\%MACHINE%\TEST +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 + +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. + +IF "%MACHINE%"=="" GOTO SUMMARY_FAIL +IF NOT EXIST C:\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:\BAT directory: MD C:\BAT +ECHO. + +:END +ECHO ============================================================== +ECHO. +PAUSE diff --git a/projects/dataforth-dos/batch-files/NWTOC.BAT b/projects/dataforth-dos/batch-files/NWTOC.BAT index a1c251f..030da26 100644 --- a/projects/dataforth-dos/batch-files/NWTOC.BAT +++ b/projects/dataforth-dos/batch-files/NWTOC.BAT @@ -29,12 +29,12 @@ IF NOT EXIST C:\NET\*.* MD C:\NET REM Check for COMMON updates IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON -ECHO [1/3] Copying batch files to C:\BAT... +ECHO (1/3) Copying batch files to C:\BAT... COPY T:\COMMON\ProdSW\*.BAT C:\BAT ECHO Done ECHO. -ECHO [2/3] Copying ATE data folders to C:\ATE... +ECHO (2/3) Copying ATE data folders to C:\ATE... IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA @@ -49,14 +49,14 @@ ECHO. REM Check for network client updates IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET -ECHO [3/3] Copying network files to C:\NET... +ECHO (3/3) Copying network files to C:\NET... COPY T:\COMMON\NET\*.* C:\NET ECHO Done ECHO. GOTO DONE :SKIP_NET -ECHO [3/3] No network updates +ECHO (3/3) No network updates ECHO. :DONE @@ -67,12 +67,12 @@ ECHO. GOTO END :NO_COMMON -ECHO [ERROR] T:\COMMON\ProdSW not found +ECHO ERROR: T:\COMMON\ProdSW not found PAUSE GOTO END :NO_DRIVE -ECHO [ERROR] T: drive not available +ECHO ERROR: T: drive not available ECHO Run C:\STARTNET.BAT first PAUSE GOTO END diff --git a/projects/dataforth-dos/batch-files/NWTOC-DEBUG.BAT b/projects/dataforth-dos/batch-files/NWTOCD.BAT similarity index 94% rename from projects/dataforth-dos/batch-files/NWTOC-DEBUG.BAT rename to projects/dataforth-dos/batch-files/NWTOCD.BAT index eaf5cc4..530b596 100644 --- a/projects/dataforth-dos/batch-files/NWTOC-DEBUG.BAT +++ b/projects/dataforth-dos/batch-files/NWTOCD.BAT @@ -1,133 +1,133 @@ -@ECHO OFF -REM NWTOC-DEBUG.BAT - Download with diagnostic pauses -REM Version: 1.0 - Debug version for recording -REM Last modified: 2026-01-21 - -ECHO. -ECHO ============================================================== -ECHO DEBUG: NWTOC - Network to Computer Download -ECHO ============================================================== -ECHO. - -ECHO NWTOC Step 0: Verifying prerequisites -IF NOT EXIST T:\*.* GOTO NO_DRIVE -ECHO T: drive OK -IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON -ECHO T:\COMMON\ProdSW OK -ECHO. -PAUSE - -ECHO. -ECHO NWTOC Step 1: Creating local directories -IF NOT EXIST C:\BAT\*.* MD C:\BAT -ECHO C:\BAT ready -IF NOT EXIST C:\ATE\*.* MD C:\ATE -ECHO C:\ATE ready -IF NOT EXIST C:\ATE\5BDATA\*.* MD C:\ATE\5BDATA -IF NOT EXIST C:\ATE\7BDATA\*.* MD C:\ATE\7BDATA -IF NOT EXIST C:\ATE\8BDATA\*.* MD C:\ATE\8BDATA -IF NOT EXIST C:\ATE\DSCDATA\*.* MD C:\ATE\DSCDATA -IF NOT EXIST C:\ATE\HVDATA\*.* MD C:\ATE\HVDATA -IF NOT EXIST C:\ATE\PWRDATA\*.* MD C:\ATE\PWRDATA -IF NOT EXIST C:\ATE\RMSDATA\*.* MD C:\ATE\RMSDATA -IF NOT EXIST C:\ATE\SCTDATA\*.* MD C:\ATE\SCTDATA -ECHO C:\ATE subfolders ready -IF NOT EXIST C:\NET\*.* MD C:\NET -ECHO C:\NET ready -PAUSE - -ECHO. -ECHO NWTOC Step 2: Downloading batch files to C:\BAT -IF EXIST T:\COMMON\ProdSW\*.BAT ECHO Found BAT files in T:\COMMON\ProdSW -COPY T:\COMMON\ProdSW\*.BAT C:\BAT -PAUSE - -ECHO. -ECHO NWTOC Step 3: Downloading 5BDATA -IF EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO Found files in T:\Ate\ProdSW\5BDATA -IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA -IF NOT EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO No files in T:\Ate\ProdSW\5BDATA -PAUSE - -ECHO. -ECHO NWTOC Step 4: Downloading 7BDATA -IF EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO Found files in T:\Ate\ProdSW\7BDATA -IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA -IF NOT EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO No files in T:\Ate\ProdSW\7BDATA -PAUSE - -ECHO. -ECHO NWTOC Step 5: Downloading 8BDATA -IF EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO Found files in T:\Ate\ProdSW\8BDATA -IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA -IF NOT EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO No files in T:\Ate\ProdSW\8BDATA -PAUSE - -ECHO. -ECHO NWTOC Step 6: Downloading DSCDATA -IF EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO Found files in T:\Ate\ProdSW\DSCDATA -IF EXIST T:\Ate\ProdSW\DSCDATA\*.* COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA -IF NOT EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO No files in T:\Ate\ProdSW\DSCDATA -PAUSE - -ECHO. -ECHO NWTOC Step 7: Downloading HVDATA -IF EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO Found files in T:\Ate\ProdSW\HVDATA -IF EXIST T:\Ate\ProdSW\HVDATA\*.* COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA -IF NOT EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO No files in T:\Ate\ProdSW\HVDATA -PAUSE - -ECHO. -ECHO NWTOC Step 8: Downloading PWRDATA -IF EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO Found files in T:\Ate\ProdSW\PWRDATA -IF EXIST T:\Ate\ProdSW\PWRDATA\*.* COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA -IF NOT EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO No files in T:\Ate\ProdSW\PWRDATA -PAUSE - -ECHO. -ECHO NWTOC Step 9: Downloading RMSDATA -IF EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO Found files in T:\Ate\ProdSW\RMSDATA -IF EXIST T:\Ate\ProdSW\RMSDATA\*.* COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA -IF NOT EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO No files in T:\Ate\ProdSW\RMSDATA -PAUSE - -ECHO. -ECHO NWTOC Step 10: Downloading SCTDATA -IF EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO Found files in T:\Ate\ProdSW\SCTDATA -IF EXIST T:\Ate\ProdSW\SCTDATA\*.* COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA -IF NOT EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO No files in T:\Ate\ProdSW\SCTDATA -PAUSE - -ECHO. -ECHO NWTOC Step 11: Checking for network client updates -IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET -ECHO Found files in T:\COMMON\NET -COPY T:\COMMON\NET\*.* C:\NET -ECHO Network files copied -PAUSE -GOTO DONE - -:SKIP_NET -ECHO No network updates in T:\COMMON\NET -PAUSE - -:DONE -ECHO. -ECHO ============================================================== -ECHO NWTOC-DEBUG Complete -ECHO ============================================================== -GOTO END - -:NO_DRIVE -ECHO. -ECHO NWTOC ERROR: T: drive not available -PAUSE -GOTO END - -:NO_COMMON -ECHO. -ECHO NWTOC ERROR: T:\COMMON\ProdSW not found -PAUSE -GOTO END - -:END +@ECHO OFF +REM NWTOCD.BAT - Download with diagnostic pauses (8.3 name) +REM Version: 1.1 - Debug version for recording +REM Last modified: 2026-01-21 + +ECHO. +ECHO ============================================================== +ECHO DEBUG: NWTOC - Network to Computer Download +ECHO ============================================================== +ECHO. + +ECHO NWTOC Step 0: Verifying prerequisites +IF NOT EXIST T:\*.* GOTO NO_DRIVE +ECHO T: drive OK +IF NOT EXIST T:\COMMON\ProdSW\*.* GOTO NO_COMMON +ECHO T:\COMMON\ProdSW OK +ECHO. +PAUSE + +ECHO. +ECHO NWTOC Step 1: Creating local directories +IF NOT EXIST C:\BAT\*.* MD C:\BAT +ECHO C:\BAT ready +IF NOT EXIST C:\ATE\*.* MD C:\ATE +ECHO C:\ATE ready +IF NOT EXIST C:\ATE\5BDATA\*.* MD C:\ATE\5BDATA +IF NOT EXIST C:\ATE\7BDATA\*.* MD C:\ATE\7BDATA +IF NOT EXIST C:\ATE\8BDATA\*.* MD C:\ATE\8BDATA +IF NOT EXIST C:\ATE\DSCDATA\*.* MD C:\ATE\DSCDATA +IF NOT EXIST C:\ATE\HVDATA\*.* MD C:\ATE\HVDATA +IF NOT EXIST C:\ATE\PWRDATA\*.* MD C:\ATE\PWRDATA +IF NOT EXIST C:\ATE\RMSDATA\*.* MD C:\ATE\RMSDATA +IF NOT EXIST C:\ATE\SCTDATA\*.* MD C:\ATE\SCTDATA +ECHO C:\ATE subfolders ready +IF NOT EXIST C:\NET\*.* MD C:\NET +ECHO C:\NET ready +PAUSE + +ECHO. +ECHO NWTOC Step 2: Downloading batch files to C:\BAT +IF EXIST T:\COMMON\ProdSW\*.BAT ECHO Found BAT files in T:\COMMON\ProdSW +COPY T:\COMMON\ProdSW\*.BAT C:\BAT +PAUSE + +ECHO. +ECHO NWTOC Step 3: Downloading 5BDATA +IF EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO Found files in T:\Ate\ProdSW\5BDATA +IF EXIST T:\Ate\ProdSW\5BDATA\*.* COPY T:\Ate\ProdSW\5BDATA\*.* C:\ATE\5BDATA +IF NOT EXIST T:\Ate\ProdSW\5BDATA\*.* ECHO No files in T:\Ate\ProdSW\5BDATA +PAUSE + +ECHO. +ECHO NWTOC Step 4: Downloading 7BDATA +IF EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO Found files in T:\Ate\ProdSW\7BDATA +IF EXIST T:\Ate\ProdSW\7BDATA\*.* COPY T:\Ate\ProdSW\7BDATA\*.* C:\ATE\7BDATA +IF NOT EXIST T:\Ate\ProdSW\7BDATA\*.* ECHO No files in T:\Ate\ProdSW\7BDATA +PAUSE + +ECHO. +ECHO NWTOC Step 5: Downloading 8BDATA +IF EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO Found files in T:\Ate\ProdSW\8BDATA +IF EXIST T:\Ate\ProdSW\8BDATA\*.* COPY T:\Ate\ProdSW\8BDATA\*.* C:\ATE\8BDATA +IF NOT EXIST T:\Ate\ProdSW\8BDATA\*.* ECHO No files in T:\Ate\ProdSW\8BDATA +PAUSE + +ECHO. +ECHO NWTOC Step 6: Downloading DSCDATA +IF EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO Found files in T:\Ate\ProdSW\DSCDATA +IF EXIST T:\Ate\ProdSW\DSCDATA\*.* COPY T:\Ate\ProdSW\DSCDATA\*.* C:\ATE\DSCDATA +IF NOT EXIST T:\Ate\ProdSW\DSCDATA\*.* ECHO No files in T:\Ate\ProdSW\DSCDATA +PAUSE + +ECHO. +ECHO NWTOC Step 7: Downloading HVDATA +IF EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO Found files in T:\Ate\ProdSW\HVDATA +IF EXIST T:\Ate\ProdSW\HVDATA\*.* COPY T:\Ate\ProdSW\HVDATA\*.* C:\ATE\HVDATA +IF NOT EXIST T:\Ate\ProdSW\HVDATA\*.* ECHO No files in T:\Ate\ProdSW\HVDATA +PAUSE + +ECHO. +ECHO NWTOC Step 8: Downloading PWRDATA +IF EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO Found files in T:\Ate\ProdSW\PWRDATA +IF EXIST T:\Ate\ProdSW\PWRDATA\*.* COPY T:\Ate\ProdSW\PWRDATA\*.* C:\ATE\PWRDATA +IF NOT EXIST T:\Ate\ProdSW\PWRDATA\*.* ECHO No files in T:\Ate\ProdSW\PWRDATA +PAUSE + +ECHO. +ECHO NWTOC Step 9: Downloading RMSDATA +IF EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO Found files in T:\Ate\ProdSW\RMSDATA +IF EXIST T:\Ate\ProdSW\RMSDATA\*.* COPY T:\Ate\ProdSW\RMSDATA\*.* C:\ATE\RMSDATA +IF NOT EXIST T:\Ate\ProdSW\RMSDATA\*.* ECHO No files in T:\Ate\ProdSW\RMSDATA +PAUSE + +ECHO. +ECHO NWTOC Step 10: Downloading SCTDATA +IF EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO Found files in T:\Ate\ProdSW\SCTDATA +IF EXIST T:\Ate\ProdSW\SCTDATA\*.* COPY T:\Ate\ProdSW\SCTDATA\*.* C:\ATE\SCTDATA +IF NOT EXIST T:\Ate\ProdSW\SCTDATA\*.* ECHO No files in T:\Ate\ProdSW\SCTDATA +PAUSE + +ECHO. +ECHO NWTOC Step 11: Checking for network client updates +IF NOT EXIST T:\COMMON\NET\*.* GOTO SKIP_NET +ECHO Found files in T:\COMMON\NET +COPY T:\COMMON\NET\*.* C:\NET +ECHO Network files copied +PAUSE +GOTO DONE + +:SKIP_NET +ECHO No network updates in T:\COMMON\NET +PAUSE + +:DONE +ECHO. +ECHO ============================================================== +ECHO NWTOC-DEBUG Complete +ECHO ============================================================== +GOTO END + +:NO_DRIVE +ECHO. +ECHO NWTOC ERROR: T: drive not available +PAUSE +GOTO END + +:NO_COMMON +ECHO. +ECHO NWTOC ERROR: T:\COMMON\ProdSW not found +PAUSE +GOTO END + +:END diff --git a/projects/dataforth-dos/batch-files/REBOOT.BAT b/projects/dataforth-dos/batch-files/REBOOT.BAT index 34ce4c8..ea997e5 100644 --- a/projects/dataforth-dos/batch-files/REBOOT.BAT +++ b/projects/dataforth-dos/batch-files/REBOOT.BAT @@ -1,166 +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= +@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= diff --git a/projects/dataforth-dos/batch-files/STAGE.BAT b/projects/dataforth-dos/batch-files/STAGE.BAT index 91a8fb0..69d1d7c 100644 --- a/projects/dataforth-dos/batch-files/STAGE.BAT +++ b/projects/dataforth-dos/batch-files/STAGE.BAT @@ -1,245 +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= +@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= diff --git a/projects/dataforth-dos/batch-files/STARTNET.BAT b/projects/dataforth-dos/batch-files/STARTNET.BAT index 574bfa8..de94cce 100644 --- a/projects/dataforth-dos/batch-files/STARTNET.BAT +++ b/projects/dataforth-dos/batch-files/STARTNET.BAT @@ -1,75 +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 +@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 diff --git a/projects/dataforth-dos/batch-files/TEST-NWTOC.BAT b/projects/dataforth-dos/batch-files/TEST-NWTOC.BAT index 1105820..3338bf6 100644 --- a/projects/dataforth-dos/batch-files/TEST-NWTOC.BAT +++ b/projects/dataforth-dos/batch-files/TEST-NWTOC.BAT @@ -1,5 +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 +@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 diff --git a/projects/dataforth-dos/batch-files/UPDATE-PRODSW.BAT b/projects/dataforth-dos/batch-files/UPDATE-PRODSW.BAT index d256060..c59bbad 100755 --- a/projects/dataforth-dos/batch-files/UPDATE-PRODSW.BAT +++ b/projects/dataforth-dos/batch-files/UPDATE-PRODSW.BAT @@ -18,7 +18,7 @@ IF NOT "%MACHINE%"=="" GOTO USE_ENV :NO_MACHINE ECHO. -ECHO [ERROR] Machine name not specified +ECHO ERROR: Machine name not specified ECHO. ECHO Usage: UPDATE machine-name ECHO Example: UPDATE TS-4R @@ -47,12 +47,12 @@ 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 +ECHO (OK) T: drive accessible GOTO START_BACKUP :NO_T_DRIVE ECHO. -ECHO [ERROR] T: drive not available +ECHO ERROR: T: drive not available ECHO. ECHO Network drive T: must be mapped to \\D2TESTNAS\test ECHO. @@ -87,7 +87,7 @@ 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 (OK) Backup directory ready ECHO. REM ================================================================== @@ -124,7 +124,7 @@ IF ERRORLEVEL 2 GOTO USER_ABORT IF ERRORLEVEL 1 GOTO NO_FILES ECHO. -ECHO [OK] Backup completed successfully +ECHO (OK) Backup completed successfully ECHO. ECHO Files backed up to: T:\%MACHINE%\BACKUP GOTO END @@ -135,7 +135,7 @@ REM ================================================================== :BACKUP_DIR_ERROR ECHO. -ECHO [ERROR] Could not create backup directory +ECHO ERROR: Could not create backup directory ECHO Target: T:\%MACHINE%\BACKUP ECHO. ECHO Check: @@ -148,7 +148,7 @@ GOTO END :DISK_ERROR ECHO. -ECHO [ERROR] Disk write error +ECHO ERROR: Disk write error ECHO. ECHO Possible causes: ECHO - Target drive is full @@ -160,7 +160,7 @@ GOTO END :INIT_ERROR ECHO. -ECHO [ERROR] Backup initialization failed +ECHO ERROR: Backup initialization failed ECHO. ECHO Possible causes: ECHO - Insufficient memory @@ -172,7 +172,7 @@ GOTO END :USER_ABORT ECHO. -ECHO [WARNING] Backup terminated by user (Ctrl+C) +ECHO WARNING: Backup terminated by user (Ctrl+C) ECHO. ECHO Backup may be incomplete! ECHO. @@ -181,7 +181,7 @@ GOTO END :NO_FILES ECHO. -ECHO [WARNING] No files found to copy +ECHO WARNING: No files found to copy ECHO. ECHO This may indicate: ECHO - All files are already up to date (/D option) diff --git a/projects/dataforth-dos/batch-files/UPDATE.BAT b/projects/dataforth-dos/batch-files/UPDATE.BAT index d862ad8..9710260 100644 --- a/projects/dataforth-dos/batch-files/UPDATE.BAT +++ b/projects/dataforth-dos/batch-files/UPDATE.BAT @@ -1,199 +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.4 - DOS 6.22 compatible (removed brackets, fixed NUL checks) -REM Last modified: 2026-01-21 - -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%\*.* MD T:\%MACHINE% - -REM Create backup directory -IF NOT EXIST T:\%MACHINE%\BACKUP\*.* 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= +@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.4 - DOS 6.22 compatible (removed brackets, fixed NUL checks) +REM Last modified: 2026-01-21 + +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%\*.* MD T:\%MACHINE% + +REM Create backup directory +IF NOT EXIST T:\%MACHINE%\BACKUP\*.* 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= diff --git a/projects/dataforth-dos/batch-files/deploy-to-nas.sh b/projects/dataforth-dos/batch-files/deploy-to-nas.sh new file mode 100644 index 0000000..233a5a8 --- /dev/null +++ b/projects/dataforth-dos/batch-files/deploy-to-nas.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# deploy-to-nas.sh - Deploy batch files to NAS with validation +# Always validates and fixes before deploying + +set -e + +echo "======================================" +echo "DOS Batch File Deployment" +echo "======================================" +echo "" + +# Step 1: Validate and fix +echo "Step 1: Validating and fixing batch files..." +./validate-dos.sh --fix + +# Step 2: Re-validate (should have no trailing space issues) +echo "" +echo "Step 2: Re-validating..." +./validate-dos.sh 2>&1 | grep -v "WARNING" | tail -5 + +# Step 3: Deploy to NAS +echo "" +echo "Step 3: Deploying to NAS..." +scp *.BAT root@192.168.0.9:/data/test/COMMON/ProdSW/ + +echo "" +echo "======================================" +echo "Deployment complete!" +echo "======================================" +echo "" +echo "Files deployed to T:\\COMMON\\ProdSW" +echo "Run NWTOC on DOS machine to download updates" diff --git a/projects/dataforth-dos/batch-files/validate-dos.sh b/projects/dataforth-dos/batch-files/validate-dos.sh new file mode 100755 index 0000000..701faa4 --- /dev/null +++ b/projects/dataforth-dos/batch-files/validate-dos.sh @@ -0,0 +1,106 @@ +#!/bin/bash +# validate-dos.sh - Validate batch files for DOS 6.22 compatibility +# Run before deploying to DOS machines + +ERRORS=0 + +echo "DOS 6.22 Batch File Validator" +echo "==============================" +echo "" + +for file in *.BAT; do + [ -f "$file" ] || continue + echo "Checking: $file" + + # Rule 1: No CALL :label + if grep -qE "CALL\s+:" "$file" 2>/dev/null; then + echo " ERROR: CALL :label subroutine found (Rule 1)" + ERRORS=$((ERRORS+1)) + fi + + # Rule 2: No %DATE% or %TIME% + if grep -qE "%DATE%|%TIME%" "$file" 2>/dev/null; then + echo " ERROR: %DATE% or %TIME% found (Rule 2)" + ERRORS=$((ERRORS+1)) + fi + + # Rule 3: No square brackets in ECHO + if grep -qE "ECHO.*\[" "$file" 2>/dev/null; then + # Exclude REM lines + if grep -vE "^REM" "$file" | grep -qE "ECHO.*\[" 2>/dev/null; then + echo " ERROR: Square brackets in ECHO (Rule 3)" + ERRORS=$((ERRORS+1)) + fi + fi + + # Rule 6: No 2>NUL + if grep -qE "2>NUL|2> *NUL" "$file" 2>/dev/null; then + echo " ERROR: 2>NUL stderr redirect found (Rule 6)" + ERRORS=$((ERRORS+1)) + fi + + # Rule 8: No :EOF + if grep -qE "GOTO\s+:?EOF" "$file" 2>/dev/null; then + echo " ERROR: :EOF label reference found (Rule 8)" + ERRORS=$((ERRORS+1)) + fi + + # Rule 15: No SETLOCAL/ENDLOCAL + if grep -qiE "SETLOCAL|ENDLOCAL" "$file" 2>/dev/null; then + echo " ERROR: SETLOCAL/ENDLOCAL found (Rule 15)" + ERRORS=$((ERRORS+1)) + fi + + # Rule 19: Check for LF-only line endings (no CR) + if file "$file" | grep -qv "CRLF"; then + if file "$file" | grep -q "ASCII"; then + echo " WARNING: May have Unix line endings (Rule 19)" + fi + fi + + # Rule 20: Trailing spaces in SET statements + if grep -qE "^SET [A-Za-z_]+=[^ ]* +$" "$file" 2>/dev/null; then + echo " ERROR: Trailing space in SET statement (Rule 20)" + grep -nE "^SET [A-Za-z_]+=[^ ]* +$" "$file" | sed 's/^/ Line /' + ERRORS=$((ERRORS+1)) + fi + + # Rule 20: Any trailing whitespace + if grep -qE " +$" "$file" 2>/dev/null; then + TRAILING=$(grep -cE " +$" "$file") + echo " WARNING: $TRAILING lines have trailing whitespace (Rule 20)" + fi + + # Check filename is 8.3 + BASENAME=$(basename "$file" .BAT) + if [ ${#BASENAME} -gt 8 ]; then + echo " ERROR: Filename exceeds 8 characters (Rule 14)" + ERRORS=$((ERRORS+1)) + fi + +done + +echo "" +echo "==============================" +if [ $ERRORS -eq 0 ]; then + echo "All checks passed!" +else + echo "Found $ERRORS error(s)" +fi +echo "" + +# Auto-fix option +if [ "$1" = "--fix" ]; then + echo "Applying fixes..." + for file in *.BAT; do + [ -f "$file" ] || continue + # Strip trailing whitespace + sed -i '' 's/[[:space:]]*$//' "$file" + # Convert to DOS line endings + perl -pi -e 's/\r?\n/\r\n/g' "$file" + echo " Fixed: $file" + done + echo "Done. Re-run without --fix to verify." +fi + +exit $ERRORS