# DOS 6.22 UPDATE.BAT Fix - Executive Summary ## Problem UPDATE.BAT failed on TS-4R Dataforth test machine: 1. Could not identify machine name automatically 2. Reported "T: not available" even though T: drive was accessible ## Root Causes ### Issue 1: Machine Name Detection - **Problem:** UPDATE.BAT tried to use %COMPUTERNAME% environment variable - **Cause:** DOS 6.22 does NOT set %COMPUTERNAME% (Windows 95+ feature only) - **Fix:** Use %MACHINE% variable set in AUTOEXEC.BAT instead ### Issue 2: T: Drive Detection - **Problem:** Batch script checked wrong condition for drive existence - **Likely causes:** - Used `IF "%TDRIVE%"==""` (checks variable, not drive) - Or used `IF EXIST T:\` (unreliable in DOS 6.22) - **Fix:** Use proper DOS 6.22 drive test: `T: 2>NUL` and `IF EXIST T:\NUL` ### Issue 3: DOS 6.22 Limitations - No `IF /I` (case-insensitive) - requires checking both cases - No `%ERRORLEVEL%` variable - must use `IF ERRORLEVEL n` syntax - No `||` or `&&` operators - must use GOTO for flow control - 8.3 filenames only ## Solution Created three fixed batch files: ### 1. UPDATE.BAT (D:\ClaudeTools\UPDATE.BAT) **Fixed backup script with:** - Machine name from %MACHINE% environment variable OR command-line parameter - Proper T: drive detection using `T: 2>NUL` test - Comprehensive error handling with visible messages - Compact console output (errors pause, success doesn't) - XCOPY with optimal flags for incremental backup **Usage:** ``` UPDATE REM Use MACHINE variable from AUTOEXEC.BAT UPDATE TS-4R REM Override with manual machine name ``` ### 2. AUTOEXEC.BAT (D:\ClaudeTools\AUTOEXEC.BAT) **Updated startup script with:** - `SET MACHINE=TS-4R` for automatic machine identification - Call to STARTNET.BAT for network initialization - Optional automatic backup on boot (commented out by default) - Network drive status display - Error handling if network fails **Customize for each machine:** ``` SET MACHINE=TS-4R REM Change to TS-7A, TS-12B, etc. ``` ### 3. STARTNET.BAT (D:\ClaudeTools\STARTNET.BAT) **Network initialization with:** - Start Microsoft Network Client - Map T: to \\D2TESTNAS\test - Map X: to \\D2TESTNAS\datasheets - Error messages for each failure point ## Files Created | File | Purpose | Location | |------|---------|----------| | UPDATE.BAT | Fixed backup script | Deploy to C:\BATCH\ | | AUTOEXEC.BAT | Updated startup script | Deploy to C:\ | | STARTNET.BAT | Network initialization | Deploy to C:\NET\ | | DOS_BATCH_ANALYSIS.md | Technical analysis | Reference only | | DOS_DEPLOYMENT_GUIDE.md | Complete deployment guide | Reference only | | DOS_FIX_SUMMARY.md | This summary | Reference only | ## Deployment (Quick Version) ### Step 1: Backup existing files ``` MD C:\BACKUP COPY C:\AUTOEXEC.BAT C:\BACKUP\AUTOEXEC.OLD COPY C:\NET\STARTNET.BAT C:\BACKUP\STARTNET.OLD ``` ### Step 2: Copy new files to DOS machine - Copy UPDATE.BAT to C:\BATCH\ - Copy AUTOEXEC.BAT to C:\ - Copy STARTNET.BAT to C:\NET\ ### Step 3: Edit AUTOEXEC.BAT for this machine ``` EDIT C:\AUTOEXEC.BAT REM Change: SET MACHINE=TS-4R REM to match actual machine name ``` ### Step 4: Create required directory ``` MD C:\BATCH ``` ### Step 5: Reboot and test ``` REBOOT ``` ### Step 6: Test UPDATE.BAT ``` UPDATE ``` ## Expected Boot Sequence With fixed files, boot should show: ``` ============================================================== Dataforth Test Machine: TS-4R DOS 6.22 with Network Client ============================================================== Starting network client... [OK] Network client started [OK] T: mapped to \\D2TESTNAS\test [OK] X: mapped to \\D2TESTNAS\datasheets Network Drives: T: = \\D2TESTNAS\test X: = \\D2TESTNAS\datasheets System ready. Commands: UPDATE - Backup C: to T:\TS-4R\BACKUP CTONW - Copy files C: to network NWTOC - Copy files network to C: C:\> ``` ## Expected UPDATE.BAT Output ``` C:\>UPDATE Checking network drive T:... [OK] T: drive accessible ============================================================== Backup: Machine TS-4R ============================================================== Source: C:\ Target: T:\TS-4R\BACKUP [OK] Backup directory ready Starting backup... This may take several minutes depending on file count. [OK] Backup completed successfully Files backed up to: T:\TS-4R\BACKUP C:\> ``` ## Key Improvements 1. **Machine detection now works:** - Uses %MACHINE% environment variable (set in AUTOEXEC.BAT) - Falls back to command-line parameter if variable not set - Clear error message if both missing 2. **T: drive detection fixed:** - Actually tests if drive exists (not just variable) - Uses DOS 6.22 compatible method - Clear error with troubleshooting steps if unavailable 3. **Console output improved:** - Compact status messages - Errors pause automatically (PAUSE command) - Success messages don't require keypress - No |MORE pipes (cause issues in batch files) 4. **Error handling comprehensive:** - Each failure point has specific error message - Suggests troubleshooting steps - ERRORLEVEL checked for all critical operations 5. **Automatic backup option:** - Can enable in AUTOEXEC.BAT (3 lines to uncomment) - Runs silently if successful - Pauses on error so messages visible ## Testing Checklist - [ ] MACHINE variable set after boot (`SET` command shows it) - [ ] T: drive accessible (`T:` and `DIR` work) - [ ] X: drive accessible (`X:` and `DIR` work) - [ ] UPDATE without parameter works (uses %MACHINE%) - [ ] UPDATE TS-4R with parameter works (overrides %MACHINE%) - [ ] Backup creates T:\TS-4R\BACKUP directory - [ ] Files copied to network successfully - [ ] Error message if network disconnected (unplug cable test) - [ ] Error message if T: unmapped (NET USE T: /DELETE test) ## Troubleshooting Quick Reference **MACHINE variable not set:** - Check AUTOEXEC.BAT has `SET MACHINE=TS-4R` - Verify AUTOEXEC.BAT runs at boot - Check CONFIG.SYS has `SHELL=C:\DOS\COMMAND.COM C:\DOS\ /P /E:1024` **T: drive not accessible:** - Run `C:\NET\STARTNET.BAT` manually - Check network cable connected - Verify NAS server online from another machine - Test `NET VIEW \\D2TESTNAS` **UPDATE.BAT not found:** - Check file exists: `DIR C:\BATCH\UPDATE.BAT` - Add to PATH: `SET PATH=C:\DOS;C:\NET;C:\BATCH;C:\` - Or run with full path: `C:\BATCH\UPDATE.BAT` ## For Complete Details See: - **DOS_DEPLOYMENT_GUIDE.md** - Full deployment and testing procedures - **DOS_BATCH_ANALYSIS.md** - Technical analysis of issues and solutions ## DOS 6.22 Boot Sequence Reference ``` 1. BIOS POST 2. Load DOS kernel - IO.SYS - MSDOS.SYS - COMMAND.COM 3. Process CONFIG.SYS - DEVICE=C:\NET\PROTMAN.DOS - DEVICE=C:\NET\NE2000.DOS (or other NIC driver) - DEVICE=C:\NET\NETBEUI.DOS 4. Process AUTOEXEC.BAT - SET MACHINE=TS-4R - SET PATH=C:\DOS;C:\NET;C:\BATCH - CALL C:\NET\STARTNET.BAT 5. STARTNET.BAT runs - NET START - NET USE T: \\D2TESTNAS\test - NET USE X: \\D2TESTNAS\datasheets 6. (Optional) CALL C:\BATCH\UPDATE.BAT 7. DOS prompt ready ``` ## Why Manual XCOPY Worked The user's manual command worked: ``` XCOPY /S C:\*.* T:\TS-4R\BACKUP ``` Because: 1. User ran it AFTER network was started (T: already mapped) 2. User manually typed machine name (TS-4R) 3. Command was simple (no error checking needed) UPDATE.BAT failed because: 1. Tried to detect machine name automatically (failed - no %COMPUTERNAME% in DOS) 2. Tried to check if T: available (used wrong method) 3. Had complex error handling that itself had bugs The fixed version: 1. Uses %MACHINE% from AUTOEXEC.BAT (set at boot) 2. Actually tests T: drive properly (DOS 6.22 compatible method) 3. Has simple, working error handling ## Version History - **Version 1.0** (Original) - Failed with machine detection and drive check - **Version 2.0** (2026-01-19) - Fixed for DOS 6.22 compatibility ## Contact Files created by Claude (Anthropic) For Dataforth test machine maintenance Date: 2026-01-19